Rich Notification ist ein erweitertes Format von iOS-Push-Benachrichtigungen, das Medienanhänge, interaktive Schaltflächen und benutzerdefinierte Oberflächen zur Verbesserung der Benutzererfahrung umfasst. Im Gegensatz zu Standardtextbenachrichtigungen kann Rich Notification Bilder, Videos und Audio direkt im Banner oder auf dem Sperrbildschirm anzeigen. Laut Apple Developer Documentation, 2026 unterstützt UNNotificationAttachment bis zu 10 Dateien in einer einzigen Benachrichtigung und skaliert sie automatisch für eine optimale Anzeige auf allen Geräten.
Wichtigste Erkenntnisse
Rich Notification ist eine iOS-Push-Benachrichtigung, die nicht nur Text, sondern auch Medienanhänge, interaktive Elemente und eine angepasste Oberfläche enthält. Der Begriff „rich“ (reichhaltig) spiegelt die Fähigkeit wider, Bilder, Videos, Audio, Aktionsschaltflächen und Texteingabe in eine Benachrichtigung aufzunehmen und so eine einfache Warnung in ein vollwertiges interaktives Element zu verwandeln.
Apple führte die Unterstützung für Rich Notification in iOS 10 zusammen mit dem UserNotifications-Framework ein. Davor konnten Push-Benachrichtigungen nur Text, Ton und ein Badge enthalten. iOS 10 führte UNNotificationServiceExtension und UNNotificationContentExtension ein, die die Möglichkeit eröffneten, Inhalte zu ändern und benutzerdefinierte Oberflächen zu erstellen. Spätere Versionen fügten SwiftUI-Unterstützung in Content Extension, animierte GIFs und verbesserte Medienskalierung hinzu.
Rich Notification steigert die Benutzerinteraktion erheblich. Studien von Apple zeigen, dass Benachrichtigungen mit Bildern 30–40% mehr Interaktionen erhalten als reine Textbenachrichtigungen. Ein Produktbild, eine Videonachricht oder eine Schnellantwort-Schaltfläche ermöglichen es dem Benutzer, direkt aus der Benachrichtigung heraus eine Entscheidung zu treffen, ohne die App zu öffnen. Dies verkürzt den Weg zur Zielaktion und verbessert die Benutzererfahrung.
UNNotificationAttachment unterstützt drei Medienkategorien: Bilder, Video und Audio. Jeder Typ hat seine eigenen Format-, Größen- und Dauerbeschränkungen. Das System skaliert Bilder automatisch auf die Benachrichtigungsgröße und begrenzt die Videodauer auf 30 Sekunden zur Leistungsoptimierung.
| Medientyp | Unterstützte Formate | Maximale Größe |
|---|---|---|
| Bilder | JPEG, PNG, GIF, TIFF | 10 MB pro Datei |
| Video | MPEG, MP4, MOV | 10 MB, bis zu 30 Sekunden |
| Audio | MP3, AAC, WAV, CAF | 10 MB |
Bilder werden vom System automatisch zugeschnitten und skaliert, um in kompakten und erweiterten Benachrichtigungsansichten angezeigt zu werden. Animierte GIFs werden ab iOS 12 unterstützt und beim Anzeigen der Benachrichtigung automatisch abgespielt. Die empfohlene Bildgröße beträgt 1024x1024 Pixel, was eine scharfe Anzeige auf allen Geräten einschließlich iPad mit großem Bildschirm gewährleistet.
Video in Rich Notification wird standardmäßig ohne Ton abgespielt — der Benutzer kann den Ton über die Player-Schaltfläche aktivieren. Die maximale Videodauer beträgt 30 Sekunden, danach wird die Wiedergabe gestoppt. Audioanhänge können für Sprachnachrichten oder Soundvorschauen verwendet werden und werden beim Antippen der Benachrichtigung in der erweiterten Ansicht abgespielt.
Interaktive Aktionen ermöglichen es dem Benutzer, Operationen direkt aus der Benachrichtigung heraus durchzuführen, ohne die App zu öffnen. Aktionen werden beim App-Start über UNNotificationCategory und UNNotificationAction registriert. Jede Aktion kann im Hintergrund (ohne Öffnen der App) oder im Vordergrund (öffnet die App zum Abschließen des Vorgangs) ausgeführt werden.
UNNotificationAction repräsentiert eine Schaltfläche mit einem Titel und optionalen Modifikatoren wie requiresAuthentication (erfordert Face ID/Touch ID) oder destructive (rot hervorgehoben). UNTextInputNotificationAction erweitert diese Fähigkeit um ein Texteingabefeld — ideal für schnelle Antworten auf Nachrichten oder Kommentare. Aktionen werden bei langem Drücken der Benachrichtigung oder beim Wischen nach unten angezeigt.
Benachrichtigungskategorien verknüpfen den Inhaltstyp mit einem Satz verfügbarer Aktionen. Der Registrierungsprozess wird in AppDelegate beim App-Start über UNUserNotificationCenter.current().setNotificationCategories durchgeführt. Die Kategorie wird auf dem Server im category-Feld des JSON-Payloads angegeben, und das System wendet automatisch den entsprechenden Aktionssatz auf die Benachrichtigung an.
Wenn der Benutzer eine Schaltfläche antippt oder Text sendet, ruft das System den UNUserNotificationCenterDelegate mit der Methode didReceive response auf. UNNotificationResponse enthält die Aktionskennung und den eingegebenen Text (für UNTextInputNotificationAction). Basierend auf diesen Informationen führt die App die entsprechende Geschäftslogik aus: sendet eine Nachricht, bestätigt eine Aktion oder öffnet einen bestimmten Bildschirm.
Lassen Sie uns den gesamten Erstellungszyklus von Rich Notification durchgehen: von der Registrierung von Kategorien in AppDelegate über die Verarbeitung in Service Extension bis zur Anzeige. AppDelegate registriert die Kategorie mit Schaltflächen, der Server sendet eine Benachrichtigung mit einer Bild-URL, Service Extension lädt die Medien herunter, und Content Extension zeigt eine benutzerdefinierte Oberfläche mit Schaltflächen an.
// AppDelegate — Registrierung von Kategorien und Aktionen
func application(
_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions:
[UIApplication.LaunchOptionsKey: Any]?
) -> Bool {
let replyAction = UNTextInputNotificationAction(
identifier: "reply",
title: "Antworten",
options: [.authenticationRequired])
let likeAction = UNNotificationAction(
identifier: "like",
title: "Gefällt mir",
options: [])
let category = UNNotificationCategory(
identifier: "social_post",
actions: [replyAction, likeAction],
intentIdentifiers: [],
options: [])
UNUserNotificationCenter.current()
.setNotificationCategories([category])
return true
}
Nach dem Empfang einer Push-Benachrichtigung mit der Kategorie „social_post“ und einer Bild-URL in einem benutzerdefinierten Feld wird die Service Extension aktiviert. Die Erweiterung lädt das Bild herunter aus dem Netzwerk, erstellt eine UNNotificationAttachment mit einer eindeutigen Kennung und fügt sie zum Inhalt hinzu. Es ist wichtig, die Größe der heruntergeladenen Datei zu überprüfen — wenn sie 10 MB überschreitet, wird der Anhang nicht erstellt, und das System zeigt die Benachrichtigung ohne Medien an.
class NotificationService: UNNotificationServiceExtension {
override func didReceive(
_ request: UNNotificationRequest,
withContentHandler contentHandler:
@escaping (UNNotificationContent) -> Void
) {
let content = (request.content.mutableCopy()
as! UNMutableNotificationContent)
guard let urlString = content.userInfo["media-url"]
as? String,
let url = URL(string: urlString)
else { contentHandler(request.content); return }
URLSession.shared.downloadTask(with: url) {
location, _, _ in
guard let location = location else {
contentHandler(content); return }
let attachment = try! UNNotificationAttachment(
identifier: "media", url: location,
options: [UNNotificationAttachmentOptionsTypeHintKey:
"jpg"])
content.attachments = [attachment]
contentHandler(content)
}.resume()
}
}
Um Rich Notification ohne Server zu testen, verwenden Sie den iOS-Simulator und senden Sie Pushs über das Terminal mit xcrun simctl push. Geben Sie im Payload unbedingt mutable-content: 1 an, um die Service Extension zu aktivieren, und die Kategorie, um Aktionen anzuzeigen. Der Befehl sendet einen Push von einer JSON-Datei direkt an den ausgewählten Simulator, was eine schnelle Iteration ohne Einrichtung einer Serverinfrastruktur ermöglicht.
UNNotificationContentExtension ermöglicht es Ihnen, die Standardbenachrichtigungsoberfläche vollständig durch eine benutzerdefinierte UIKit- oder SwiftUI-Ansicht zu ersetzen. Die Erweiterung wird aktiviert, wenn der Benutzer die Benachrichtigung erweitert (Force Touch oder Wischen nach unten) und kann Schaltflächen, Schieberegler, Animationen und andere UI-Komponenten enthalten. Die Oberflächengröße passt sich mit Auto Layout an den Inhalt an.
Content Extension basiert auf einem Storyboard mit einem View-Controller, der von UIViewController erbt. SwiftUI View wird ab iOS 16 über UIHostingController integriert, was moderne Ansätze zur Oberflächenerstellung ermöglicht. Für Abwärtskompatibilität mit iOS 14–15 wird die Verwendung von UIKit mit xib-Dateien empfohlen. Die Oberfläche erhält modifizierte Inhalte von Service Extension über UNNotificationContent.
Content Extension implementiert das UNNotificationContentExtension-Protokoll mit der Methode didReceive response. UNNotificationResponse enthält Informationen über die gedrückte Schaltfläche oder den eingegebenen Text. Die Erweiterung kann die Oberfläche aktualisieren, ohne die Benachrichtigung zu schließen, oder den Completion Handler aufrufen, um sie zu schließen. Dies ermöglicht die Erstellung schneller Interaktionsszenarien, wie z.B. ein „Gefällt mir“ mit visuellem Feedback direkt in der Benachrichtigung.
Apple empfiehlt, Content Extension prägnant und funktional zu halten und übermäßige Elemente zu vermeiden. Die maximale Höhe der erweiterten Benachrichtigung beträgt etwa 400 Punkte, danach scrollt der Inhalt. Verwenden Sie Systemschriftarten und -abstände für Konsistenz mit anderen Benachrichtigungen. Testen Sie auf verschiedenen Bildschirmgrößen, um sicherzustellen, dass die Oberfläche sowohl auf iPhone als auch auf iPad korrekt angezeigt wird.
Häufig gestellte Fragen
Die maximale Größe eines einzelnen Medienanhangs beträgt 10 MB. Bei Überschreitung des Limits wird UNNotificationAttachment nicht erstellt und die Benachrichtigung ohne Medien angezeigt. Es wird empfohlen, Bilder auf 1–3 MB zu optimieren für schnelles Laden in Service Extension.
Rich Notifications werden auf allen Geräten mit iOS 10 und höher unterstützt, einschließlich iPhone 5s und neuer. Content Extension mit benutzerdefinierter UI ist ab iOS 12 verfügbar. SwiftUI in Content Extension — ab iOS 16. Auf älteren Versionen wird die Benachrichtigung in Standardform angezeigt.
Ja, animierte GIFs werden ab iOS 12 unterstützt. GIF wird wie ein normales Bild über UNNotificationAttachment geladen und beim Anzeigen der Benachrichtigung automatisch abgespielt. Die GIF-Größe ist auf dieselben 10 MB wie andere Formate begrenzt.
Maximal 4 Aktionen pro Benachrichtigung bei der Registrierung einer Kategorie. Bei mehr Angaben zeigt das System die ersten 4 an und ignoriert den Rest. Es wird empfohlen, 2–3 Schaltflächen für optimales UX zu verwenden — zu viele Optionen überladen die Oberfläche.
Ja, der Server muss Pushs über APNS (Apple Push Notification service) mit einem JSON-Payload senden, der die Medien-URL in einem benutzerdefinierten Feld und das Flag mutable-content: 1 enthält. Der Server gibt auch die Kategorie an, um Content Extension und Aktionen zu aktivieren.
Zusammenfassung
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.
Lesen Sie auch