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 toUm verschiedene Aktionen beim Öffnen einer App auszuführen, sollten Sie eine benutzerdefinierte UNUserNotificationCenterDelegate-Implementierung erstellen und deren didReceiveNotificationResponse-Methode überschreiben:
CustomDelegate
Anchor link toclass 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 tofunc application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { Pushwoosh.configure.registerForPushNotifications()
let customDelegate = CustomDelegate() Pushwoosh.configure.addNotificationCenterDelegate(customDelegate)
return true}