Notification Content Extension — Wesen, benutzerdefinierte UI und Einrichtung in iOS

Autor: IT Sectr Veröffentlicht: 2026-06-15 Lesezeit: 9 Min.

Notification Content Extension ist eine Art iOS-Erweiterung, die die standardmäßige Push-Benachrichtigungsvorlage durch eine vollständig benutzerdefinierte Benutzeroberfläche ersetzt. Entwickler können Bilder, Audioplayer, Aktionsschaltflächen, Fortschrittsbalken und benutzerdefinierte Animationen innerhalb einer Benachrichtigung anzeigen und so das Standard-Banner zu einer vollwertigen Mini-Anwendung erweitern. Laut WWDC 2025 verwendet die Erweiterung UNNotificationContentExtension und unterstützt bis zu 4 Medienanhänge in einer einzigen Benachrichtigung sowie die Verarbeitung interaktiver Aktionen über UNNotificationAction.

Wichtige Punkte

  • Notification Content Extension erstellt eine benutzerdefinierte Oberfläche für Push-Benachrichtigungen anstelle der standardmäßigen Systemvorlage
  • Die Architektur basiert auf dem Protokoll UNNotificationContentExtension mit den Methoden didReceive(_:with:) und didReceive(_:withCompletionHandler:)
  • Die Erweiterung kann Medienanhänge — Bilder, Audio und Video — direkt in der Benachrichtigung anzeigen, ohne die App zu öffnen
  • Interaktive Benachrichtigungen unterstützen benutzerdefinierte Aktionen mit Rückmeldung und Texteingabe
  • Die Größe der Oberfläche ist begrenzt — die maximale Höhe der benutzerdefinierten Benachrichtigung beträgt 320 Punkte auf dem iPhone und 352 auf dem iPad

Was ist Notification Content Extension

Notification Content Extension ist eine App-Erweiterung, die die Anzeige von Push-Benachrichtigungen auf iOS überschreibt. Anstelle eines Standard-Banners mit Titel, Nachrichtentext und Schaltflächen können Sie eine vollständig in Interface Builder oder programmgesteuert über UIKit oder SwiftUI gestaltete Oberfläche anzeigen.

Im Gegensatz zur Notification Service Extension, die den Inhalt vor der Anzeige ändert, ist die Content Extension nur für die visuelle Darstellung. verantwortlich. Die Erweiterung erhält die vollständige Benachrichtigung nach allen Änderungen und entscheidet, wie sie angezeigt wird. Dies ist der Hauptunterschied zwischen den beiden Arten von Benachrichtigungserweiterungen.

Die Erweiterung wird aktiviert, wenn der Benutzer eine Erweiterungsgeste ausführt — nach unten scrollen auf der Benachrichtigung oder darauf tippen (je nach Gerätemodell). iOS startet den Erweiterungsprozess, erstellt einen Controller aus dem angegebenen Nib oder Storyboard und übermittelt die Benachrichtigung über UNNotificationContentExtension .

Erstellen einer benutzerdefinierten Benachrichtigungsoberfläche

Die Entwicklung beginnt mit dem Hinzufügen eines neuen Targets in Xcode mit der Vorlage Notification Content Extension. Xcode erstellt eine Datei MainInterface.storyboard und eine Klasse, die von UIViewController erbt und das UNNotificationContentExtension-Protokoll implementiert.

Größe und Einschränkungen der Oberfläche

Die maximale Höhe des benutzerdefinierten Bereichs beträgt 320 Punkte auf dem iPhone (für Modelle mit großem Bildschirm) und 352 Punkte auf dem iPad. Inhalt, der diese Grenzen überschreitet, wird abgeschnitten. Zur Anpassung an verschiedene Größen wird die Verwendung von Auto Layout und UIScrollView für scrollbaren Inhalt empfohlen. Die Breite entspricht immer der Breite der Benachrichtigung und ändert sich automatisch beim Drehen des Geräts.

Die Apple Human Interface Guidelines warnen: Die Benachrichtigungsoberfläche sollte prägnant sein und nur ein primäres Element enthalten — ein Bild, einen Player, eine Karte oder ein Schnelleingabeformular. Mehrere interaktive Elemente überfordern den Benutzer und erschweren die Interaktion.

Kommunikation mit der Haupt-App

App Group ist der einzige Mechanismus zum Datenaustausch zwischen der Erweiterung und der Hauptanwendung. Über das gemeinsame App Group-Verzeichnis können zwischengespeicherte Bilder, Token und Einstellungen übertragen werden. Direkte API-Aufrufe an die Hauptanwendung oder der Zugriff auf deren UserDefaults sind aufgrund der Prozessisolierung nicht verfügbar.

swift
class NotificationViewController: UIViewController {

    func didReceive(
        _ notification: UNNotification
    ) {
        guard let attachment = notification
            .request.content.attachments.first()
        else { return }
        if attachment.url.startAccessingSecurityScopedResource() {
            imageView.image = UIImage(contentsOfFile:
                attachment.url.path)
            attachment.url.stopAccessingSecurityScopedResource()
        }
    }
}

UNNotificationContentExtension-Protokoll

UNNotificationContentExtension ist das Hauptprotokoll, das den Lebenszyklus einer benutzerdefinierten Benachrichtigung definiert. Das Protokoll stellt Methoden zum Empfangen von Inhalten, Behandeln von Aktionen und Verwalten der Oberfläche bereit.

Methode didReceive:with:

didReceive(_:with:) wird aufgerufen, wenn eine Benachrichtigung empfangen wird. Die Erweiterung erhält ein UNNotification-Objekt und UNNotificationContentExtensionMediaPlayPauseButtonType zur Steuerung des Media Players. In dieser Methode müssen Sie die Oberfläche konfigurieren — ein Bild laden, den Player initialisieren oder Daten anzeigen. Das System ruft diese Methode jedes Mal auf, wenn die Benachrichtigung in Echtzeit aktualisiert wird.

Es ist wichtig zu beachten, dass die Erweiterung nur begrenzte Zeit zur Ausführung hat — etwa 30 Sekunden für einen vollständigen Anzeigezyklus. Wenn die Oberfläche nicht innerhalb dieser Zeit vorbereitet ist, zeigt iOS die Systembenachrichtigung an. Für schwere Ressourcen — Laden von Bildern aus dem Netzwerk, Dekodieren von Videos — wird die Verwendung asynchroner Operationen mit Vorab-Caching über App Group empfohlen.

Media Player Steuerung

Das Protokoll enthält optionale Methoden für Play/Pause-Schaltflächen: mediaPlay, mediaPause, mediaPlayPauseButtonType. Wenn die Benachrichtigung Audio- oder Videoinhalte enthält, kann die Erweiterung einen integrierten Player mit einem Systemsteuerungselement anzeigen. iOS fügt automatisch eine Wiedergabeschaltfläche in der oberen rechten Ecke der Erweiterung hinzu, wenn der entsprechende Schaltflächentyp zurückgegeben wird.

Medienanhänge und ihre Verarbeitung

UNNotificationAttachment ist ein Objekt, das einer Benachrichtigung beigefügte Mediendaten enthält. Bilder, Audiodateien und Videos werden in der Phase der Benachrichtigungserstellung auf dem Server oder in der Notification Service Extension über UNNotificationAttachment hinzugefügt.

Unterstützte Formate

Für Bilder: JPEG, PNG, GIF, HEIF. Für Audio: MP3, AAC, ALAC, WAV. Für Video: MPEG-4, H.264, HEVC. Maximale Größe jedes Anhangs: 50 MB, bis zu 4 Anhänge pro Benachrichtigung. Das System lädt Anhänge automatisch im Hintergrund herunter, bevor die Benachrichtigung angezeigt wird, und gewährt der Erweiterung Zugriff auf lokale URLs über Sicherheitsbereichsressourcen.

Laut Apple sollte die Erweiterung Medien nicht selbst herunterladen — UNNotificationAttachment enthält bereits eine lokale URL, nachdem das System den Download abgeschlossen hat. Wenn der Anhang jedoch nicht rechtzeitig heruntergeladen wurde (z. B. aufgrund einer schlechten Verbindung), kann die Erweiterung einen Platzhalter oder alternativen Text anzeigen.

Arbeiten mit Sicherheitsbereichsressourcen

Jeder UNNotificationAttachment stellt eine URL mit Sicherheitsbereich bereit, auf die die Erweiterung über startAccessingSecurityScopedResource() zugreifen und über stopAccessingSecurityScopedResource() freigeben muss. Diese Methoden müssen paarweise aufgerufen werden — andernfalls wird die Ressource nicht freigegeben und verursacht ein Zugriffsrechteleck.

swift
let attachment = notification.request.content.attachments.first()
guard attachment.url.startAccessingSecurityScopedResource()
else { return }
defer { attachment.url.stopAccessingSecurityScopedResource() }
let data = try Data(contentsOf: attachment.url)
imageView.image = UIImage(data: data)

Interaktive Benachrichtigungen und Aktionen

Notification Content Extension unterstützt benutzerdefinierte interaktive Aktionen — Schaltflächen, die unter dem Benachrichtigungsinhalt angezeigt werden. Aktionen werden beim Erstellen der Benachrichtigungskategorie über UNNotificationCategory registriert und können destruktiv, textbasiert oder im Hintergrund ausgeführt werden.

Aktionstypen

UNNotificationAction ist eine einfache Aktion mit einem Titel und einem optionalen Destruktiv-Flag. UNTextInputNotificationAction ist eine Aktion mit einem Texteingabefeld, z. B. für schnelle Antworten auf Nachrichten. Beide Typen unterstützen die Option UNNotificationActionOptions.authenticationRequired — die eine Geräteentsperrung vor der Ausführung erfordert.

Die Erweiterung erhält die ausgewählte Aktion über die Methode didReceive(_:withCompletionHandler:), die ein UNNotificationResponse-Objekt mit der Aktionskennung und optionalem Text übergibt. Die Erweiterung kann die Antwort selbst verarbeiten oder über den gemeinsamen App Group-Container an die Hauptanwendung weiterleiten.

swift
let category = UNNotificationCategory(
    identifier: "message",
    actions: [
        UNTextInputNotificationAction(
            identifier: "reply",
            title: "Reply",
            options: .authenticationRequired
        ),
        UNNotificationAction(
            identifier: "mark_read",
            title: "Mark Read",
            options: .foreground
        )
    ],
    intentIdentifiers: []
)

Häufig gestellte Fragen

Was ist der Unterschied zwischen Notification Content Extension und Service Extension?

Content Extension ist für die visuelle Anzeige der Benachrichtigung verantwortlich, während Service Extension für die Änderung des Inhalts vor der Anzeige zuständig ist. Content Extension arbeitet nach Service Extension und kann das Nutzlast der Benachrichtigung nicht ändern.

Welche Programmiersprachen werden unterstützt?

Swift und Objective-C für UIKit. Ab iOS 16 wird auch SwiftUI zum Erstellen von Benachrichtigungsoberflächen über NotificationContentView mit Größen- und Konfigurationsmodifikatoren unterstützt.

Kann SwiftUI in Notification Content Extension verwendet werden?

Ja, ab iOS 16 kann die Erweiterung SwiftUI über UIHostingController verwenden. Alle UIKit-Kompetenzen — Größe, Einschränkungen, Sicherheitsbereichsressourcen — bleiben jedoch erhalten und werden auf SwiftUI-Inhalte angewendet.

Wie viele Medienanhänge können an eine Benachrichtigung angehängt werden?

4 Anhänge pro Benachrichtigung. Jeder Anhang kann bis zu 50 MB groß sein. Zu den unterstützten Formaten gehören Bilder (JPEG, PNG, HEIF), Audio (MP3, AAC) und Video (MPEG-4, H.264).

Wie werden Daten von der Erweiterung an die Hauptanwendung übertragen?

App Group — ein gemeinsames Verzeichnis auf der Festplatte. UserDefaults mit dem App Group-Suffix funktioniert ebenfalls. Direkte API-Aufrufe an die Hauptanwendung sind aufgrund der Prozessisolierung nicht verfügbar.

Zusammenfassung

  • Notification Content Extension ersetzt die Standard-Benachrichtigungsoberfläche durch eine benutzerdefinierte mit beliebigen visuellen Elementen
  • Die Architektur verwendet das Protokoll UNNotificationContentExtension mit didReceive-Methoden für Oberflächenaktualisierungen
  • UNNotificationAttachment stellt Medienanhänge mit automatischem Hintergrunddownload und Sicherheitsbereichszugriff bereit
  • Interaktive Aktionen unterstützen Texteingabe und destruktive Operationen über UNNotificationAction
  • Die maximale Oberflächenhöhe beträgt 320 Punkte auf dem iPhone, UIScrollView wird zur Inhaltsanpassung empfohlen
  • Der Datenaustausch mit der Hauptanwendung erfolgt nur über App Group und ein gemeinsames Verzeichnis auf der Festplatte

Wir entwickeln eine mobile Applikation schlüsselfertig

IT Sectr entwickelt seit 2017 iOS- und Android-Apps für Startups und Unternehmen. Wir beraten Sie und schlagen die beste Lösung vor.

Projekt besprechen

Lesen Sie auch