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 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 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()
}
}

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 to
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
Pushwoosh.sharedInstance().registerForPushNotifications()
let customDelegate = CustomDelegate()
Pushwoosh.sharedInstance().notificationCenterDelegateProxy?.add(customDelegate)
return true
}
Interaktive iOS-Push-Benachrichtigung mit benutzerdefinierten Aktionsschaltflächen, die im Benachrichtigungsbanner angezeigt werden