# 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](/de/product/messaging-channels/push-notifications/advanced-push-features/ios-interactive-push)

## API

Wenn Ihre Anwendung [`registerDevice`](/de/developer/api-reference/device-api/#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:

```json
{
  "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`](/de/developer/api-reference/messages-api/#createmessage)-Anfragen den Parameter `ios_category` mit der entsprechenden Kategorie-ID als Wert verwenden:

```json
{
  "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

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

#### CustomDelegate


```swift
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

```swift
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
    Pushwoosh.configure.registerForPushNotifications()

    let customDelegate = CustomDelegate()
    Pushwoosh.configure.addNotificationCenterDelegate(customDelegate)

    return true
}
```

<img src="/messaging-channels-ios-interactive-push-1.png" alt="Interaktive iOS-Push-Benachrichtigung mit benutzerdefinierten Aktionsschaltflächen, die im Benachrichtigungsbanner angezeigt werden"/>