Skip to content


Push-Integration

1. Schritt: Laden Sie Ihr APNs-Token hoch

Bevor Sie eine iOS Push-Benachrichtigung mit Braze versenden können, müssen Sie Ihre .p8 Push-Benachrichtigungsdatei hochladen, wie beschrieben in der Entwickler:in Dokumentation von Apple:

  1. Gehen Sie in Ihrem Apple Entwickler-Account zu Zertifikate, Bezeichner & Profile.
  2. Wählen Sie unter Schlüssel die Option Alle und klicken Sie auf die Schaltfläche Hinzufügen (+) in der oberen rechten Ecke.
  3. Geben Sie unter Schlüsselbeschreibung einen eindeutigen Namen für den Signierschlüssel ein.
  4. Aktivieren Sie unter Wichtige Dienste das Kontrollkästchen Apple Push Notification Service (APNs) und klicken Sie dann auf Weiter. Klicken Sie auf Bestätigen.
  5. Notieren Sie sich die ID des Schlüssels. Klicken Sie auf Download, um den Schlüssel zu generieren und herunterzuladen. Stellen Sie sicher, dass Sie die heruntergeladene Datei an einem sicheren Ort speichern, da Sie sie nur einmal herunterladen können.
  6. Gehen Sie in Braze zu Einstellungen > App-Einstellungen und laden Sie die Datei .p8 unter Apple Push Certificate hoch. Sie können entweder Ihr Entwicklungs- oder Ihr Produktions-Push-Zertifikat hochladen. Um Push-Benachrichtigungen zu testen, nachdem Ihre App live im App Store ist, empfiehlt es sich, einen separaten Arbeitsbereich für die Entwicklungsversion Ihrer App einzurichten.
  7. Wenn Sie dazu aufgefordert werden, geben Sie die Bundle ID, die Key ID und die Team ID Ihrer App ein. Sie müssen auch angeben, ob die Benachrichtigungen an die Entwicklungs- oder die Produktionsumgebung Ihrer App gesendet werden sollen, die durch ihr Bereitstellungsprofil definiert ist.
  8. Wenn Sie fertig sind, wählen Sie Speichern.

2. Schritt: Push-Funktionen aktivieren

Vergewissern Sie sich in Ihren Projekteinstellungen, dass auf dem Tab Capabilities die Funktion Push Notifications aktiviert ist.

Wenn Sie über getrennte Push-Zertifikate für Entwicklung und Produktion verfügen, müssen Sie auf dem Tab General das Kontrollkästchen Automatically manage signing deaktivieren. Auf diese Weise können Sie für jede Build-Konfiguration unterschiedliche Bereitstellungsprofile wählen, da das Feature zur automatischen Code-Signierung in Xcode nur für die Entwicklung gilt.

Xcode-Projekteinstellungen mit dem Tab „General“. In diesem Tab ist die Option „Automatically manage signing“ nicht markiert.

3. Schritt: Für Push-Benachrichtigungen registrieren

Das entsprechende Code-Beispiel muss in der Delegate-Methode application:didFinishLaunchingWithOptions: Ihrer App enthalten sein, damit sich das Gerät Ihrer Nutzer:innen bei APNs registrieren kann. Stellen Sie sicher, dass Sie den gesamten Code für die Push-Integration im Hauptthread Ihrer Anwendung aufrufen.

Braze bietet auch Standard-Push-Kategorien für die Unterstützung von Push-Action-Buttons, die manuell zu Ihrem Code für die Push-Registrierung hinzugefügt werden müssen. Weitere Schritte zur Integration finden Sie unter Push-Action-Buttons.

UserNotification-Framework verwenden (iOS 10+)

Wenn Sie das in iOS 10 eingeführte Framework UserNotifications verwenden (empfohlen), fügen Sie den folgenden Code zur Methode application:didFinishLaunchingWithOptions: Ihres App-Delegaten hinzu.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
if (floor(NSFoundationVersionNumber) > NSFoundationVersionNumber_iOS_9_x_Max) {
  UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter];
  center.delegate = self;
  UNAuthorizationOptions options = UNAuthorizationOptionAlert | UNAuthorizationOptionSound | UNAuthorizationOptionBadge;
  if (@available(iOS 12.0, *)) {
  options = options | UNAuthorizationOptionProvisional;
  }
  [center requestAuthorizationWithOptions:options
                        completionHandler:^(BOOL granted, NSError * _Nullable error) {
                          [[Appboy sharedInstance] pushAuthorizationFromUserNotificationCenter:granted];
  }];
  [[UIApplication sharedApplication] registerForRemoteNotifications];
} else {
  UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:(UIUserNotificationTypeBadge | UIUserNotificationTypeAlert | UIUserNotificationTypeSound) categories:nil];
  [[UIApplication sharedApplication] registerForRemoteNotifications];
  [[UIApplication sharedApplication] registerUserNotificationSettings:settings];
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
if #available(iOS 10, *) {
  let center = UNUserNotificationCenter.current()
  center.delegate = self as? UNUserNotificationCenterDelegate
  var options: UNAuthorizationOptions = [.alert, .sound, .badge]
  if #available(iOS 12.0, *) {
    options = UNAuthorizationOptions(rawValue: options.rawValue | UNAuthorizationOptions.provisional.rawValue)
  }
  center.requestAuthorization(options: options) { (granted, error) in
    Appboy.sharedInstance()?.pushAuthorization(fromUserNotificationCenter: granted)
  }
  UIApplication.shared.registerForRemoteNotifications()
} else {
  let types : UIUserNotificationType = [.alert, .badge, .sound]
  let setting : UIUserNotificationSettings = UIUserNotificationSettings(types:types, categories:nil)
  UIApplication.shared.registerUserNotificationSettings(setting)
  UIApplication.shared.registerForRemoteNotifications()
}

Ohne UserNotifications-Framework

Wenn Sie das Framework UserNotifications nicht verwenden, fügen Sie den folgenden Code zur Methode application:didFinishLaunchingWithOptions: Ihres App-Delegaten hinzu:

1
2
3
UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:(UIUserNotificationTypeBadge | UIUserNotificationTypeAlert | UIUserNotificationTypeSound) categories:nil];
[[UIApplication sharedApplication] registerForRemoteNotifications];
[[UIApplication sharedApplication] registerUserNotificationSettings:settings];
1
2
3
4
let types : UIUserNotificationType = UIUserNotificationType.Badge | UIUserNotificationType.Sound | UIUserNotificationType.Alert
var setting : UIUserNotificationSettings = UIUserNotificationSettings(forTypes: types, categories: nil)
UIApplication.shared.registerUserNotificationSettings(setting)
UIApplication.shared.registerForRemoteNotifications()

4. Schritt: Push-Token bei Braze registrieren

Sobald die APNs-Registrierung abgeschlossen ist, muss die folgende Methode geändert werden, um das resultierende deviceToken an Braze zu übergeben, damit die Nutzer:innen für Push-Benachrichtigungen aktiviert werden:

Fügen Sie den folgenden Code zu Ihrer Methode application:didRegisterForRemoteNotificationsWithDeviceToken: hinzu:

1
[[Appboy sharedInstance] registerDeviceToken:deviceToken];

Fügen Sie den folgenden Code in die Methode application(_:didRegisterForRemoteNotificationsWithDeviceToken:) Ihrer App ein:

1
Appboy.sharedInstance()?.registerDeviceToken(deviceToken)

5. Schritt: Push-Verarbeitung aktivieren

Der folgende Code leitet empfangene Push-Benachrichtigungen an Braze weiter und ist für die Protokollierung von Push-Analytics und die Behandlung von Links erforderlich. Stellen Sie sicher, dass Sie den gesamten Code für die Push-Integration im Hauptthread Ihrer Anwendung aufrufen.

iOS 10+

Für iOS 10+ empfehlen wir die Integration des Frameworks UserNotifications und die folgenden Schritte:

Fügen Sie den folgenden Code in die Methode application:didReceiveRemoteNotification:fetchCompletionHandler: Ihrer Anwendung ein:

1
2
3
[[Appboy sharedInstance] registerApplication:application
                didReceiveRemoteNotification:userInfo
                      fetchCompletionHandler:completionHandler];

Als Nächstes fügen Sie den folgenden Code in die Methode (void)userNotificationCenter:didReceiveNotificationResponse:withCompletionHandler: Ihrer App ein:

1
2
3
[[Appboy sharedInstance] userNotificationCenter:center
                 didReceiveNotificationResponse:response
                          withCompletionHandler:completionHandler];

Push-Verarbeitung im Vordergrund

Um eine Push-Benachrichtigung anzuzeigen, während sich die App im Vordergrund befindet, implementieren Sie userNotificationCenter:willPresentNotification:withCompletionHandler::

1
2
3
4
5
6
7
8
9
- (void)userNotificationCenter:(UNUserNotificationCenter *)center
       willPresentNotification:(UNNotification *)notification
         withCompletionHandler:(void (^)(UNNotificationPresentationOptions options))completionHandler {
  if (@available(iOS 14.0, *)) {
    completionHandler(UNNotificationPresentationOptionList | UNNotificationPresentationOptionBanner);
  } else {
    completionHandler(UNNotificationPresentationOptionAlert);
  }
}

Wenn auf die Benachrichtigung im Vordergrund geklickt wird, wird der iOS-10-Push-Delegat userNotificationCenter:didReceiveNotificationResponse:withCompletionHandler: aufgerufen und Braze protokolliert ein Push-Klick-Event.

Fügen Sie den folgenden Code in die Methode application(_:didReceiveRemoteNotification:fetchCompletionHandler:) Ihrer App ein:

1
2
3
Appboy.sharedInstance()?.register(application,
                                            didReceiveRemoteNotification: userInfo,
                                            fetchCompletionHandler: completionHandler)

Als Nächstes fügen Sie den folgenden Code in die Methode userNotificationCenter(_:didReceive:withCompletionHandler:) Ihrer App ein:

1
2
3
Appboy.sharedInstance()?.userNotificationCenter(center,
                                               didReceive: response,
                                               withCompletionHandler: completionHandler)

Push-Verarbeitung im Vordergrund

Um eine Push-Benachrichtigung anzuzeigen, während sich die App im Vordergrund befindet, implementieren Sie userNotificationCenter(_:willPresent:withCompletionHandler:):

1
2
3
4
5
6
7
8
9
func userNotificationCenter(_ center: UNUserNotificationCenter,
                              willPresent notification: UNNotification,
                              withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {
  if #available(iOS 14.0, *) {
    completionHandler([.list, .banner]);
  } else {
    completionHandler([.alert]);
  }
}

Wenn auf die Benachrichtigung im Vordergrund geklickt wird, wird der iOS-10-Push-Delegat userNotificationCenter(_:didReceive:withCompletionHandler:) aufgerufen und Braze protokolliert ein Push-Klick-Event.

Vor iOS 10

iOS 10 hat das Verhalten aktualisiert, sodass beim Klicken auf einen Push application:didReceiveRemoteNotification:fetchCompletionHandler: nicht mehr aufgerufen wird. Aus diesem Grund müssen Sie, wenn Sie nicht auf iOS 10+ aktualisieren und das Framework UserNotifications verwenden, Braze von beiden alten Delegaten aufrufen, was einen Bruch mit unserer früheren Integration darstellt.

Für Apps, die mit SDKs < iOS 10 erstellt werden, verwenden Sie die folgenden Anweisungen:

Um das Öffnungs-Tracking für Push-Benachrichtigungen zu aktivieren, fügen Sie den folgenden Code in die Methode application:didReceiveRemoteNotification:fetchCompletionHandler: Ihrer App ein:

1
2
3
[[Appboy sharedInstance] registerApplication:application
                didReceiveRemoteNotification:userInfo
                      fetchCompletionHandler:completionHandler];

Um Push-Analytics unter iOS 10 zu unterstützen, müssen Sie außerdem den folgenden Code zur Delegate-Methode application:didReceiveRemoteNotification: Ihrer App hinzufügen:

1
2
[[Appboy sharedInstance] registerApplication:application
                didReceiveRemoteNotification:userInfo];

Um das Öffnungs-Tracking für Push-Benachrichtigungen zu aktivieren, fügen Sie den folgenden Code in die Methode application(_:didReceiveRemoteNotification:fetchCompletionHandler:) Ihrer App ein:

1
2
3
Appboy.sharedInstance()?.register(application,
  didReceiveRemoteNotification: userInfo,
  fetchCompletionHandler: completionHandler)

Um Push-Analytics unter iOS 10 zu unterstützen, müssen Sie außerdem den folgenden Code zur Delegate-Methode application(_:didReceiveRemoteNotification:) Ihrer App hinzufügen:

1
2
Appboy.sharedInstance()?.register(application,
  didReceiveRemoteNotification: userInfo)

6. Schritt: Deeplinking

Deeplinks von einem Push in die App werden automatisch über unsere standardmäßige Dokumentation zur Push-Integration verarbeitet. Wenn Sie mehr darüber erfahren möchten, wie Sie Deeplinks zu bestimmten Stellen in Ihrer App hinzufügen, sehen Sie sich unsere fortgeschrittenen Anwendungsfälle an.

7. Schritt: Unit-Tests (optional)

Um die Testabdeckung für die soeben durchgeführten Integrationsschritte zu erhöhen, implementieren Sie Push-Unit-Tests.

New Stuff!