Zum Inhalt springen

Interaktive iOS-Push-Benachrichtigungen erstellen

iOS 8 führte interaktive Benachrichtigungen ein, die es Benutzern ermöglichen, Aktionen direkt aus dem Benachrichtigungsbanner auszuführen. Pushwoosh bietet jetzt iOS Categories an, mit denen Sie benutzerdefinierte Schaltflächen im Pushwoosh Control Panel erstellen können. Erfahren Sie mehr

Wenn Ihre Anwendung registerDevice aufruft, gibt die Pushwoosh-API eine Antwort zurück, die eine Liste der verfügbaren Kategorien mit ihren IDs und Details für jede Schaltfläche wie folgt enthält:

{
"status_code": 200,
"status_message": "OK",
"response": {
"iosCategories": [
{
"categoryId": 65,
"buttons": [
{
"id": 0,
"label": "Rate",
"type": "1",
"startApplication": 1
},
{
"id": 1,
"label": "Later",
"type": "0",
"startApplication": 0
}
]
}
]
}
}

Diese Kategorien sind nun auf dem Gerät verfügbar, sodass sie korrekt angezeigt werden können, wenn eine Nachricht ankommt und Ihre Anwendung nicht im Vordergrund läuft.

Um Ihre Push-Benachrichtigung mit einer Kategorie aus der Pushwoosh Journey zu senden, wählen Sie diese einfach in den iOS-Plattformeinstellungen beim Verfassen Ihrer Nachricht aus. Falls Sie Ihre Push-Benachrichtigungen remote über die Pushwoosh-API senden, sollten Sie in den createMessage-Anfragen den Parameter ios_category mit der entsprechenden Kategorie-ID als Wert verwenden:

{
"categoryId": 65 // Optional. String-Wert. iOS8-Kategorie-ID von Pushwoosh
}

Wenn eine Push-Nachricht mit einer Kategorie-ID ankommt, zeigt das Pushwoosh SDK die Benachrichtigung mit den Schaltflächen an, die diese Kategorie enthält.

Schaltflächen & Aktionen im Pushwoosh iOS SDK

Anchor link to

Um verschiedene Aktionen beim Öffnen einer App auszuführen, sollten Sie eine benutzerdefinierte UNUserNotificationCenterDelegate-Implementierung erstellen und deren didReceiveNotificationResponse-Methode überschreiben:

CustomDelegate

Anchor link to
class CustomDelegate: NSObject, UNUserNotificationCenterDelegate {
func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Void) {
let identifier = response.actionIdentifier
let category = response.notification.request.content.categoryIdentifier
if category == "10212" {
if identifier == "1" {
// ETWAS TUN
} else {
// ETWAS ANDERES TUN
}
}
completionHandler()
}
}

Wobei identifier eine Schaltflächen-ID ist und category aus der Benachrichtigungs-Payload abgeleitet wird.

Erstellen Sie dann eine Instanz dieser Klasse und übergeben Sie sie mit der Proxy-Methode an das Pushwoosh SDK:

AppDelegate

Anchor link to
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
Pushwoosh.configure.registerForPushNotifications()
let customDelegate = CustomDelegate()
Pushwoosh.configure.addNotificationCenterDelegate(customDelegate)
return true
}
Interaktive iOS-Push-Benachrichtigung mit benutzerdefinierten Aktionsschaltflächen, die im Benachrichtigungsbanner angezeigt werden