Notification Category: Was es ist, welche Kategorien es gibt und wie sie in iOS funktionieren

Autor: IT Sectr Veröffentlicht: 2026-03-20 Lesezeit: 8 Min.

Notification Category (Benachrichtigungskategorie) ist ein iOS-Mechanismus zum Gruppieren von Push-Benachrichtigungen nach Typ und zum Hinzufügen von benutzerdefinierten Aktionen. Die Kategorie bestimmt, welche Schaltflächen bei 3D Touch oder langem Druck auf eine Benachrichtigung angezeigt werden, sowie wie das System eingehende Benachrichtigungen dieses Typs verarbeitet. Laut Apple Developer Documentation wird UNNotificationCategory im UNUserNotificationCenter registriert und über das Feld category in der APNS-Nutzlast mit einer Benachrichtigung verknüpft.

Wichtige Punkte

  • Notification Category — iOS-Mechanismus zum Klassifizieren von Push-Benachrichtigungen und Hinzufügen von Aktionen
  • UNNotificationCategory — Klasse, die eine Kategorie mit einem Satz von UNNotificationAction registriert
  • Aktionen — Schaltflächen unter der Benachrichtigung: UNTextInputAction für Texteingabe, UNNotificationAction für Tippen
  • Verbindung — die Kategorie wird in der APNS-Nutzlast über den Schlüssel category im aps-Wörterbuch angegeben
  • Unterschied zu Android — iOS Category verwaltet Aktionen, während Android Channel Wichtigkeit und Ton verwaltet

Was ist Notification Category in iOS?

Notification Category ist eine iOS-Funktion (seit Version 8.0), die es Entwicklern ermöglicht, Push-Benachrichtigungen zu klassifizieren und interaktive Aktionen hinzuzufügen. Wenn ein Benutzer eine Benachrichtigung erhält und fest drückt (3D Touch) oder lange drückt, erscheinen Schaltflächen, die durch die Kategorie definiert werden. Dies macht Benachrichtigungen interaktiv und ermöglicht Benutzern, ohne Öffnen der App zu handeln.

Eine Kategorie wird mit einem UNNotificationCategory-Objekt registriert, das eine Kennung, ein Array von Aktionen und optionale Anzeigeparameter enthält. Das System verwendet die Kategoriekennung aus der APNS-Nutzlast, um die registrierte Kategorie zu finden und die entsprechenden Schaltflächen anzuzeigen.

Im Gegensatz zu Android Notification Channel verwaltet iOS Category nicht die Wichtigkeit, den Ton oder die Vibration. Ihr einziger Zweck ist es, interaktive Möglichkeiten für Benachrichtigungen bereitzustellen: Antwort-, Bestätigungs-, Abbruch- oder Texteingabeschaltflächen.

Sind Kategorien obligatorisch?

Kategorien sind nicht obligatorisch für die Anzeige von Push-Benachrichtigungen auf iOS. Die Benachrichtigung wird trotzdem angezeigt — mit Schaltflächen, wenn eine Kategorie registriert ist, oder ohne. Kategorien werden nur benötigt, um Benachrichtigungen Interaktivität hinzuzufügen.

Wie funktionieren Benachrichtigungskategorien?

Der Kategoriemechanismus besteht aus vier Phasen: Registrieren der Kategorie auf dem Client, Senden einer APNS-Nutzlast mit der Kategorie, Erkennen der Kategorie durch das System und Verarbeiten der Benutzeraktion.

  • Registrierung — die App erstellt eine UNNotificationCategory mit einem Array von Aktionen und registriert sie im UNUserNotificationCenter
  • Senden — der Server fügt den Schlüssel category in die APNS-Nutzlast ein, mit einem Wert, der der Kategoriekennung entspricht
  • Anzeige — iOS zeigt die Benachrichtigung und bei Force Touch die der Kategorie zugeordneten Schaltflächen an
  • Verarbeitung — der Benutzer tippt auf eine Schaltfläche, was UNUserNotificationCenterDelegate.didReceive response auslöst

Aktionen in einer Kategorie können zwei Arten sein: foreground (öffnen die App) und background (werden im Hintergrund ausgeführt). Für Hintergrundaktionen hat die App begrenzte Zeit (ca. 30 Sekunden) für die Verarbeitung im UNNotificationActionHandler.

Optionen beim Registrieren einer Kategorie

UNNotificationCategory unterstützt mehrere Optionen über den Parameter options: customDismissAction — Ereignis beim Wegwischen der Benachrichtigung erhalten, allowInCarPlay — Aktionen in CarPlay anzeigen, hiddenPreviewsBodyPlaceholder — benutzerdefinierter Platzhaltertext für ausgeblendete Vorschauen.

UNNotificationAction: Aktionsarten

iOS bietet zwei Arten von Aktionen für Benachrichtigungskategorien. Jede Art hat ihren eigenen Zweck und ihre eigene Art der Interaktion mit dem Benutzer.

ArtKlasseBeschreibungBeispiel
Einfache AktionUNNotificationActionEine Schaltfläche mit Titel und Optionen (destructive, foreground, authenticationRequired)„Löschen“, „Anzeigen“
TexteingabeUNTextInputActionEine Schaltfläche, die ein Texteingabefeld mit Platzhalter öffnet„Antworten“, „Kommentieren“

UNTextInputAction ist eine einzigartige iOS-Funktion. Wenn der Benutzer auf die Schaltfläche „Antworten“ tippt, zeigt das System ein Textfeld an, in das der Benutzer seine Antwort eingibt. Der eingegebene Text wird zusammen mit der Aktionskennung an den Delegaten übergeben. Dies ermöglicht schnelle Antworten ohne Öffnen der App.

Aktionsoptionen: options.authenticationRequired — erfordert Geräteentsperrung, options.destructive — hebt die Schaltfläche rot hervor (für gefährliche Aktionen), options.foreground — öffnet die App nach dem Tippen.

Einrichten einer Kategorie im iOS-Code

Kategorien werden beim App-Start registriert, normalerweise in der Methode didFinishLaunchingWithOptions. Die Registrierung erfolgt über UNUserNotificationCenter nach der Anfrage der Benachrichtigungsberechtigung. Kategorien können bei jedem Start aktualisiert werden — alte Versionen werden durch neue ersetzt.

swift
import UserNotifications

class AppDelegate: UIResponder, UIApplicationDelegate {

    func registerNotificationCategories() {
        let replyAction = UNTextInputNotificationAction(
            identifier: "reply",
            title: "Antworten",
            options: [.foreground],
            textInputButtonTitle: "Senden",
            textInputPlaceholder: "Nachricht eingeben..."
        )

        let deleteAction = UNNotificationAction(
            identifier: "delete",
            title: "Löschen",
            options: [.destructive]
        )

        let messageCategory = UNNotificationCategory(
            identifier: "message",
            actions: [replyAction, deleteAction],
            intentIdentifiers: [],
            options: [.customDismissAction]
        )

        UNUserNotificationCenter.current()
            .setNotificationCategories([messageCategory])
    }

    func application(
        _ application: UIApplication,
        didFinishLaunchingWithOptions options: [UIApplication.LaunchOptionsKey: Any]?
    ) -> Bool {
        UNUserNotificationCenter.current().delegate = self
        registerNotificationCategories()
        return true
    }
}

Nach dem Registrieren der Kategorie zeigt jede Benachrichtigung mit category = „message“ in der APNS-Nutzlast die Schaltflächen „Antworten“ und „Löschen“ an. Die Tippverarbeitung erfolgt in userNotificationCenter:didReceive response, wobei actionIdentifier bestimmt, welche Schaltfläche gedrückt wurde.

Tippverarbeitung im Delegaten

Wenn der Benutzer auf eine Kategorieschaltfläche tippt, ruft iOS den UNUserNotificationCenterDelegate mit einem UNNotificationResponse-Objekt auf. response.actionIdentifier enthält die Kennung der gedrückten Schaltfläche, und response.notification.request.content.userInfo enthält benutzerdefinierte Daten aus der Nutzlast.

Unterschiede zu Android-Kanälen

Entwickler, die mit Android Notification Channels vertraut sind, verwechseln diese oft mit iOS Notification Categories. Trotz des ähnlichen Namens lösen diese Mechanismen unterschiedliche Aufgaben und funktionieren anders.

  • Zweck — Android Channels verwalten Wichtigkeit und Sichtbarkeit von Benachrichtigungen; iOS Categories verwalten interaktive Aktionen
  • Obligatorisch — Android Channel ist für die Anzeige einer Benachrichtigung erforderlich; iOS Category ist optional
  • Benutzerkontrolle — Android-Benutzer konfigurieren Kanäle in den Systemeinstellungen; iOS-Kategorien sind für Benutzer nicht direkt sichtbar
  • Gruppierung — Android Channels können in ChannelGroups gruppiert werden; iOS Categories werden nicht gruppiert

Beide Plattformen können beide Mechanismen kombinieren: Auf Android kann eine Benachrichtigung zu einem Kanal mit Aktionen von NotificationCompat gehören, während auf iOS eine Kategorie die Kanäle ergänzt, die in iOS als thread-id bezeichnet werden und zum Gruppieren von Benachrichtigungen im Benachrichtigungscenter dienen.

APNS-Nutzlast mit Kategorie

Damit eine Benachrichtigung mit Kategorieschaltflächen angezeigt wird, muss der Server den Schlüssel category in die APNS-Nutzlast aufnehmen. Ohne diesen Schlüssel weiß das System nicht, welche Kategorie auf die Benachrichtigung angewendet werden soll.

json
{
    "aps": {
        "alert": {
            "title": "Neue Nachricht",
            "body": "Anna: Hallo! Wie geht es dir?"
        },
        "category": "message",
        "thread-id": "chat_123",
        "badge": 5,
        "sound": "default"
    }
}

Der Schlüssel category muss exakt mit der Kennung übereinstimmen, die über setNotificationCategories auf dem Client registriert wurde. Groß-/Kleinschreibung ist wichtig — „message“ und „Message“ gelten als unterschiedliche Kategorien. Wenn die Kategorie nicht gefunden wird, erscheint die Benachrichtigung ohne Schaltflächen, ohne Fehler in den Protokollen.

Behandlung unbekannter Kategorien

Wenn der Server eine Benachrichtigung mit einer auf dem Client nicht registrierten Kategorie sendet, ignoriert iOS die Kategorie und zeigt die Benachrichtigung ohne Schaltflächen an. Der Fehler wird nicht protokolliert, und die App erfährt nichts von der Nichtübereinstimmung. Es wird empfohlen, die Kategorieliste zwischen Server und Client zu synchronisieren.

Kategorie-Entwurfsmuster

Beim Entwerfen von Benachrichtigungskategorien in iOS folgen Sie dem Prinzip eine Kategorie — ein Szenario. Jede Kategorie sollte einer bestimmten Art der Interaktion entsprechen: Antworten auf eine Nachricht, Bestätigen einer Aktion, Ablehnen einer Anfrage. Mischen Sie nicht verschiedene Szenarien in einer Kategorie.

Verwenden Sie UNTextInputAction für Szenarien, in denen der Benutzer Text eingeben muss, ohne die App zu öffnen: Nachrichtenantworten, Kommentare, Kurznotizen. Textaktionen erhöhen das Engagement — der Benutzer führt eine sinnvolle Aktion in 2 Tipps statt 5+ in der App aus.

Verwenden Sie für gefährliche Aktionen (Löschen, Blockieren) die Option destructive. iOS hebt diese Schaltflächen rot hervor und warnt den Benutzer vor der Unumkehrbarkeit der Aktion. Für Aktionen, die eine Geräteentsperrung erfordern (Anzeigen persönlicher Daten), geben Sie authenticationRequired an.

Testen Sie Kategorien auf verschiedenen Geräten: auf iPhone mit 3D Touch, auf iPhone ohne 3D Touch (langer Druck), auf iPad und auf Mac. Das Verhalten von Kategorien kann auf den verschiedenen Apple-Plattformen leicht abweichen. Besondere Aufmerksamkeit für CarPlay: Kategorieschaltflächen erscheinen auf dem Autobildschirm und sollten aus Sicherheitsgründen für den Fahrer mit minimalem Text gestaltet werden.

Häufig gestellte Fragen

Wie viele Kategorien können in iOS registriert werden?

Es gibt keine Grenzen — iOS legt keine Beschränkung für die Anzahl der UNNotificationCategory fest. In der Praxis wird jedoch empfohlen, nicht mehr als 10–15 Kategorien zu verwenden, um die Delegatenverarbeitung nicht zu verkomplizieren. Jede Kategorie kann bis zu 4 Aktionen (Schaltflächen) enthalten. Mehr als 4 Aktionen werden vom System ignoriert.

Wie wird ein Tipp auf eine Kategorieschaltfläche verarbeitet?

Implementieren Sie das Protokoll UNUserNotificationCenterDelegate und die Methode didReceive. Überprüfen Sie response.actionIdentifier: UNNotificationDismissActionIdentifier — Wischen zum Verwerfen, UNNotificationDefaultActionIdentifier — Tippen auf den Körper, oder Ihre benutzerdefinierte Schaltflächenkennung. Für Texteingabeschaltflächen ist der Text über response.userText verfügbar.

Was ist der Unterschied zwischen category und thread-id?

Category — definiert die interaktiven Aktionen (Schaltflächen) für die Benachrichtigung. Thread-id — gruppiert Benachrichtigungen im Benachrichtigungscenter nach Thema. Beide Schlüssel werden in der APNS-Nutzlast angegeben. Category und thread-id sind nicht verwandt: eine Benachrichtigung kann eine Kategorie haben, aber keine thread-id, und umgekehrt.

Funktionieren Kategorien auf macOS?

Ja, UNNotificationCategory wird auf macOS 10.14+ (Mojave) in Apps unterstützt, die das UserNotifications-Framework verwenden. Das Verhalten von Kategorien auf macOS ähnelt iOS: Beim Klicken auf eine Benachrichtigung werden Schaltflächen angezeigt, und die Verarbeitung erfolgt über UNUserNotificationCenterDelegate.

Müssen Kategorien bei jedem Start aktualisiert werden?

Es wird empfohlen, Kategorien bei jedem App-Start über setNotificationCategories zu registrieren. Das System ersetzt bei jedem Aufruf den alten Kategoriesatz durch den neuen. Wenn Sie nicht aktualisieren, bleiben Kategorien zwischen Starts erhalten, aber bei Codeänderungen können alte Kategorien unerwartetes Verhalten verursachen.

Zusammenfassung

  • Notification Category — iOS-Mechanismus zum Hinzufügen interaktiver Aktionen zu Push-Benachrichtigungen
  • UNNotificationCategory — eine Klasse, die eine Kennung, ein Array von UNNotificationAction und Optionen kombiniert
  • UNTextInputAction — eine Aktion mit Texteingabefeld für schnelle Antworten ohne Öffnen der App
  • APNS-Nutzlast — der Schlüssel category im aps-Wörterbuch verknüpft die Benachrichtigung mit einer registrierten Kategorie
  • Bis zu 4 Aktionen — maximale Schaltflächen pro Kategorie, der Rest wird vom System ignoriert
  • Aktionsoptionen — foreground (App öffnen), destructive (rote Schaltfläche), authenticationRequired
  • Unterschied zu Android — iOS Category verwaltet Aktionen, Android Channel verwaltet Wichtigkeit und Ton

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