0Pricing
Swift Academy · Lektion

Benachrichtigungsaktionen und -kategorien

Fügen Sie Benachrichtigungen interaktive Aktionen hinzu.

Benachrichtigungsaktionen und -kategorien ist eine kostenlose Swift Academy-Lektion auf CoddyKit. Dies ist Lektion 4 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Swift Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Swift Academy-Kurs umfasst insgesamt 4 Lektionen.

Interaktive Benachrichtigungen

Benachrichtigungen können mehr als nur Text anzeigen – sie können Schaltflächen anbieten. Ein Benutzer kann auf eine Nachricht antworten, eine Einladung annehmen oder eine Erinnerung zurückstellen, ohne die App zu öffnen. Dies wird aus Aktionen aufgebaut, die in Kategorien gruppiert werden.

import UserNotifications
// Category = a set of actions
// Each delivered notification names its category
// so the system shows the right buttons

Eine Aktion definieren

Eine UNNotificationAction besitzt einen Bezeichner, anhand dessen Sie später die passende Aktion ermitteln, einen lokalisierten Titel für die Schaltfläche und Optionen wie .destructive oder .foreground, wodurch die App gestartet wird.

import UserNotifications
let accept = UNNotificationAction(
    identifier: "ACCEPT",
    title: String(localized: "Accept"),
    options: [.foreground])
let decline = UNNotificationAction(
    identifier: "DECLINE",
    title: String(localized: "Decline"),
    options: [.destructive])

Zu einer Kategorie gruppieren

Eine UNNotificationCategory bündelt Aktionen unter einem Kategoriebezeichner. Die Reihenfolge der Aktionen im Array entspricht der Reihenfolge der Schaltflächen. Sie registrieren Kategorien beim Start einmalig beim Notification Center.

import UserNotifications
let inviteCategory = UNNotificationCategory(
    identifier: "INVITE",
    actions: [accept, decline],
    intentIdentifiers: [],
    options: [])
UNUserNotificationCenter.current()
    .setNotificationCategories([inviteCategory])

Eine Benachrichtigung mit ihrer Kategorie kennzeichnen

Damit die Schaltflächen angezeigt werden, muss der Inhalt der Benachrichtigung categoryIdentifier auf eine registrierte Kategorie setzen. Bei Remote-Pushs sendet der Server "category": "INVITE" innerhalb des aps-Dictionarys.

import UserNotifications
let content = UNMutableNotificationContent()
content.title = String(localized: "New invite")
content.body = String(localized: "Ada invited you")
content.categoryIdentifier = "INVITE"

Die ausgewählte Aktion verarbeiten

Wenn der Benutzer auf eine Schaltfläche tippt, wird didReceive response des Delegates mit dem auf Ihre Aktions-ID gesetzten response.actionIdentifier ausgelöst. Verzweigen Sie abhängig davon, um die richtige Arbeit auszuführen.

import UserNotifications
func userNotificationCenter(
    _ center: UNUserNotificationCenter,
    didReceive response: UNNotificationResponse
) async {
    switch response.actionIdentifier {
    case "ACCEPT":  print("accepted")
    case "DECLINE": print("declined")
    default:        break
    }
}

Bezeichner für Standardaktion und Verwerfen

Zwei Systembezeichner sind immer vorhanden: UNNotificationDefaultActionIdentifier bedeutet, dass der Benutzer auf den Inhalt getippt hat, um die App zu öffnen, und UNNotificationDismissActionIdentifier bedeutet, dass er die Benachrichtigung verworfen hat. Behandeln Sie diese zusammen mit Ihren benutzerdefinierten Aktionen.

import UserNotifications
func route(_ id: String) {
    switch id {
    case UNNotificationDefaultActionIdentifier:
        print("opened the app")
    case UNNotificationDismissActionIdentifier:
        print("dismissed")
    default:
        print("custom action", id)
    }
}

Texteingabeaktionen

Eine UNTextInputNotificationAction zeigt ein eingebettetes Textfeld an – ideal für schnelle Antworten. Sie fügt einen Schaltflächentitel und einen Platzhalter für das Eingabefeld hinzu.

import UserNotifications
let reply = UNTextInputNotificationAction(
    identifier: "REPLY",
    title: String(localized: "Reply"),
    options: [],
    textInputButtonTitle: String(localized: "Send"),
    textInputPlaceholder: String(localized: "Message"))

Den eingegebenen Text lesen

Bei einer Texteingabeaktion ist die Antwort eine UNTextInputNotificationResponse. Wandeln Sie sie in diesen Typ um, um userText auszulesen, also die vom Benutzer eingegebene Zeichenkette.

import UserNotifications
func handle(_ response: UNNotificationResponse) {
    if let textResponse = response
        as? UNTextInputNotificationResponse {
        let message = textResponse.userText
        print("reply:", message)
    }
}

Kategorieoptionen

Kategorieoptionen verfeinern das Verhalten: .customDismissAction übermittelt das Verwerfen-Ereignis an Ihr Delegate, .hiddenPreviewsShowTitle zeigt den Titel auch dann an, wenn Vorschauen auf dem Sperrbildschirm ausgeblendet sind, und .allowInCarPlay erlaubt die Anzeige in CarPlay.

import UserNotifications
let category = UNNotificationCategory(
    identifier: "MESSAGE",
    actions: [reply],
    intentIdentifiers: [],
    options: [.customDismissAction,
              .hiddenPreviewsShowTitle])
_ = category

Hintergrund- und Vordergrundaktionen

Ohne die Option .foreground führt eine Aktion Ihren Handler im Hintergrund aus, ohne die App in den Vordergrund zu bringen – ideal zum Zurückstellen oder Liken. Mit .foreground wird die App gestartet, sodass Sie eine Benutzeroberfläche anzeigen können. Entscheiden Sie danach, ob der Benutzer etwas sehen muss.

import UserNotifications
let snooze = UNNotificationAction(
    identifier: "SNOOZE",
    title: String(localized: "Snooze"),
    options: []) // background, no app launch
let open = UNNotificationAction(
    identifier: "OPEN",
    title: String(localized: "Open"),
    options: [.foreground]) // launches app
_ = (snooze, open)

Ein vollständiger Antwortablauf

Verbinden Sie eine Texteingabeaktion, eine Kategorie und einen Handler, der zwischen der eingegebenen Antwort und einem einfachen Öffnen unterscheidet. Dieses Muster ermöglicht Antworten auf Nachrichten direkt in der Benachrichtigung.

import UserNotifications
func handle(_ response: UNNotificationResponse) async {
    switch response.actionIdentifier {
    case "REPLY":
        let text = (response as?
            UNTextInputNotificationResponse)?.userText ?? ""
        print("send reply:", text)
    case UNNotificationDefaultActionIdentifier:
        print("open conversation")
    default:
        break
    }
}

Kurzer Test

Rufen Sie sich ins Gedächtnis, woher das System weiß, welche Schaltflächen angezeigt werden sollen.

Zusammenfassung

Sie haben interaktive Benachrichtigungen kennengelernt:

  • Erstellen Sie UNNotificationActions, einschließlich UNTextInputNotificationAction, und gruppieren Sie sie in einer UNNotificationCategory.
  • Registrieren Sie Kategorien beim Start; setzen Sie categoryIdentifier am Inhalt oder category im Push, damit die Schaltflächen angezeigt werden.
  • Verarbeiten Sie response.actionIdentifier einschließlich der Bezeichner für Standardaktion und Verwerfen, und lesen Sie für Antworten userText aus.
  • Lassen Sie .foreground für Hintergrundaktionen wie das Zurückstellen weg.

Häufig gestellte Fragen

Ist die Lektion „Benachrichtigungsaktionen und -kategorien“ kostenlos?

Ja — der vollständige Text von „Benachrichtigungsaktionen und -kategorien“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Swift Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Swift Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Benachrichtigungsaktionen und -kategorien“?

Fügen Sie Benachrichtigungen interaktive Aktionen hinzu. Du übst Swift Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Swift Academy zu starten?

Keine Vorkenntnisse erforderlich. Swift Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 4 von 4.

Wie lange dauert die Lektion „Benachrichtigungsaktionen und -kategorien“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Swift Academy-Lektion Code schreiben und ausführen?

Ja. Jede Swift Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Für Push-Benachrichtigungen registrieren
  2. Notification-Payloads verarbeiten
  3. Hintergrundaufgaben und Aktualisierung
  4. Benachrichtigungsaktionen und -kategorien
← Zurück zu Swift Academy