
AppboyKit (également connu sous le nom de SDK Objective-C) n’est plus pris en charge et a été remplacé par Swift SDK. Il ne recevra plus de nouvelles fonctionnalités, de corrections de bugs, de mises à jour de sécurité ou d’assistance technique - cependant, la messagerie et l’analyse continueront à fonctionner normalement. Pour en savoir plus, consultez Présentation du nouveau SDK Braze Swift.
Intégration des notifications push
Étape 1 : Téléchargez votre jeton APNs
Avant de pouvoir envoyer une notification push iOS à l’aide de Braze, vous devez télécharger votre fichier de notification push .p8, comme indiqué dans la documentation destinée aux développeurs d’Apple:
- Dans votre compte de développeur Apple, allez dans Certificats, identifiants & Profils.
- Sous Clés, sélectionnez Tous et cliquez sur le bouton d’ajout (+) dans le coin supérieur droit.
- Sous Description de la clé, saisissez un nom unique pour la clé de signature.
- Sous Services clés, cochez la case Service de notification push d’Apple (APN), puis cliquez sur Continuer. Cliquez sur Confirmer.
- Notez l’ID de la clé. Cliquez sur Télécharger pour générer et télécharger la clé. Assurez-vous d’enregistrer le fichier téléchargé dans un endroit sécurisé, car vous ne pouvez pas le télécharger plus d’une fois.
- Dans Braze, allez dans Paramètres > Paramètres des applications et téléchargez le fichier
.p8sous Certificat de notification push Apple. Vous pouvez charger votre certificat de notifications push de développement ou de production. Pour tester les notifications push une fois que votre application est en ligne dans l’App Store, il est recommandé de créer un espace de travail distinct pour la version de développement de votre application. - Lorsque vous y êtes invité, saisissez l’ ID de l’offre groupée, l’ ID de la clé et l’ ID de l’équipe de votre application. Vous devrez également préciser si les notifications doivent être envoyées à l’environnement de développement ou de production de votre application, qui est défini par son profil de provisionnement.
- Lorsque vous avez terminé, sélectionnez Enregistrer.
Étape 2 : Activer les fonctionnalités de notification push
Dans les paramètres de votre projet, assurez-vous que sous l’onglet Capabilities, votre fonctionnalité Push Notifications est activée.

Si vous disposez de certificats push distincts pour le développement et la production, veillez à décocher la case Automatically manage signing dans l’onglet General. Cela vous permettra de choisir différents profils de provisionnement pour chaque configuration de build, car la fonctionnalité de signature de code automatique de Xcode ne gère que la signature de développement.

Étape 3 : S’inscrire aux notifications push
L’exemple de code approprié doit être inclus dans la méthode de délégation application:didFinishLaunchingWithOptions: de votre application pour que l’appareil de vos utilisateurs s’enregistre auprès des APNs. Assurez-vous d’appeler tout le code d’intégration push dans le thread principal de votre application.
Braze fournit également des catégories push par défaut pour la prise en charge des boutons d’action push, qui doivent être ajoutées manuellement à votre code d’enregistrement push. Reportez-vous aux boutons d’action push pour connaître les étapes d’intégration supplémentaires.

Si vous avez mis en place une invite push personnalisée comme décrit dans nos bonnes pratiques push, assurez-vous d’appeler le code suivant à chaque exécution de l’application après que l’utilisateur a accordé les autorisations push à votre application. Les applications doivent se réenregistrer auprès des APNs, car les jetons d’appareils peuvent changer de manière arbitraire.
Utilisation du framework UserNotification (iOS 10+)
Si vous utilisez le framework UserNotifications (recommandé) introduit dans iOS 10, ajoutez le code suivant à la méthode application:didFinishLaunchingWithOptions: de votre délégué d’application.

L’exemple de code suivant inclut l’intégration pour l’authentification push provisoire (lignes 5 et 6). Si vous ne prévoyez pas d’utiliser l’autorisation provisoire dans votre application, vous pouvez supprimer les lignes de code qui ajoutent UNAuthorizationOptionProvisional aux options requestAuthorization.
Consultez les options de notification iOS pour en savoir plus sur l’authentification push provisoire.
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()
}

Vous devez attribuer votre objet délégué à l’aide de center.delegate = self de manière synchrone avant que votre application ne termine son lancement, de préférence dans application:didFinishLaunchingWithOptions:. Sans cela, votre application risque de ne pas recevoir les notifications push entrantes. Consultez la documentation Apple UNUserNotificationCenterDelegate pour en savoir plus.
Sans le framework UserNotifications
Si vous n’utilisez pas le framework UserNotifications, ajoutez le code suivant à la méthode application:didFinishLaunchingWithOptions: de votre délégué d’application :
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()
Étape 4 : Enregistrer les jetons push avec Braze
Une fois l’enregistrement APNs terminé, la méthode suivante doit être modifiée pour transmettre le deviceToken résultant à Braze afin que l’utilisateur soit activé pour les notifications push :
Ajoutez le code suivant à votre méthode application:didRegisterForRemoteNotificationsWithDeviceToken: :
1
[[Appboy sharedInstance] registerDeviceToken:deviceToken];
Ajoutez le code suivant à la méthode application(_:didRegisterForRemoteNotificationsWithDeviceToken:) de votre application :
1
Appboy.sharedInstance()?.registerDeviceToken(deviceToken)

La méthode de délégation application:didRegisterForRemoteNotificationsWithDeviceToken: est appelée à chaque fois après l’appel de [[UIApplication sharedApplication] registerForRemoteNotifications]. Si vous migrez vers Braze depuis un autre service de notifications push et que l’appareil de votre utilisateur est déjà enregistré auprès des APNs, cette méthode collectera les jetons à partir des enregistrements existants lors du prochain appel, et les utilisateurs n’auront pas à se réabonner aux notifications push.
Étape 5 : Activer la gestion des notifications push
Le code suivant transmet les notifications push reçues à Braze et est nécessaire pour la journalisation des analyses push et la gestion des liens. Assurez-vous d’appeler tout le code d’intégration push dans le thread principal de votre application.
iOS 10+
Lors du développement pour iOS 10+, nous vous recommandons d’intégrer le framework UserNotifications et de procéder comme suit :
Ajoutez le code suivant à la méthode application:didReceiveRemoteNotification:fetchCompletionHandler: de votre application :
1
2
3
[[Appboy sharedInstance] registerApplication:application
didReceiveRemoteNotification:userInfo
fetchCompletionHandler:completionHandler];
Puis ajoutez le code suivant à la méthode (void)userNotificationCenter:didReceiveNotificationResponse:withCompletionHandler: de votre application :
1
2
3
[[Appboy sharedInstance] userNotificationCenter:center
didReceiveNotificationResponse:response
withCompletionHandler:completionHandler];
Gestion des notifications push au premier plan
Pour afficher une notification push lorsque l’application est au premier plan, implémentez 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);
}
}
Si l’utilisateur clique sur la notification au premier plan, le délégué push iOS 10 userNotificationCenter:didReceiveNotificationResponse:withCompletionHandler: sera appelé, et Braze enregistrera un événement de clic push.
Ajoutez le code suivant à la méthode application(_:didReceiveRemoteNotification:fetchCompletionHandler:) de votre application :
1
2
3
Appboy.sharedInstance()?.register(application,
didReceiveRemoteNotification: userInfo,
fetchCompletionHandler: completionHandler)
Puis ajoutez le code suivant à la méthode userNotificationCenter(_:didReceive:withCompletionHandler:) de votre application :
1
2
3
Appboy.sharedInstance()?.userNotificationCenter(center,
didReceive: response,
withCompletionHandler: completionHandler)
Gestion des notifications push au premier plan
Pour afficher une notification push lorsque l’application est au premier plan, implémentez 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]);
}
}
Si l’utilisateur clique sur la notification au premier plan, le délégué push iOS 10 userNotificationCenter(_:didReceive:withCompletionHandler:) sera appelé, et Braze enregistrera un événement de clic push.
Pré-iOS 10
iOS 10 a modifié le comportement de sorte que application:didReceiveRemoteNotification:fetchCompletionHandler: n’est plus appelé lorsqu’un utilisateur clique sur une notification push. Pour cette raison, si vous ne mettez pas à jour votre build pour iOS 10+ et n’utilisez pas le framework UserNotifications, vous devez appeler Braze depuis les deux anciens délégués, ce qui constitue une rupture par rapport à notre intégration précédente.
Pour les applications développées avec des SDK < iOS 10, utilisez les instructions suivantes :
Pour activer le suivi d’ouverture sur les notifications push, ajoutez le code suivant à la méthode application:didReceiveRemoteNotification:fetchCompletionHandler: de votre application :
1
2
3
[[Appboy sharedInstance] registerApplication:application
didReceiveRemoteNotification:userInfo
fetchCompletionHandler:completionHandler];
Pour prendre en charge les analyses push sur iOS 10, vous devez également ajouter le code suivant à la méthode de délégation application:didReceiveRemoteNotification: de votre application :
1
2
[[Appboy sharedInstance] registerApplication:application
didReceiveRemoteNotification:userInfo];
Pour activer le suivi d’ouverture sur les notifications push, ajoutez le code suivant à la méthode application(_:didReceiveRemoteNotification:fetchCompletionHandler:) de votre application :
1
2
3
Appboy.sharedInstance()?.register(application,
didReceiveRemoteNotification: userInfo,
fetchCompletionHandler: completionHandler)
Pour prendre en charge les analyses push sur iOS 10, vous devez également ajouter le code suivant à la méthode de délégation application(_:didReceiveRemoteNotification:) de votre application :
1
2
Appboy.sharedInstance()?.register(application,
didReceiveRemoteNotification: userInfo)
Étape 6 : Liens profonds
La création de liens profonds depuis une notification push vers l’application est gérée automatiquement via notre documentation d’intégration push standard. Si vous souhaitez en savoir plus sur l’ajout de liens profonds vers des emplacements spécifiques dans votre application, consultez nos cas d’utilisation avancés.
Étape 7 : Tests unitaires (facultatif)
Pour ajouter une couverture de test aux étapes d’intégration que vous venez de suivre, implémentez les tests unitaires push.