Interaktive iOS-Push-Benachrichtigungen erstellen
iOS 8 führte interaktive Benachrichtigungen ein, die es Benutzern ermöglichen, Aktionen direkt aus dem Benachrichtigungsbanner heraus auszuführen. Pushwoosh bietet jetzt iOS-Kategorien, 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() }}Dabei ist identifier eine Schaltflächen-ID und category wird aus der Nutzlast der Benachrichtigung abgeleitet.
Erstellen Sie dann eine Instanz dieser Klasse und übergeben Sie sie über die Proxy-Methode an das Pushwoosh SDK:
AppDelegate
Anchor link tofunc application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { Pushwoosh.sharedInstance().registerForPushNotifications()
let customDelegate = CustomDelegate() Pushwoosh.sharedInstance().notificationCenterDelegateProxy?.add(customDelegate)
return true}