AppboyKit (also known as the Objective-C SDK) is no longer supported and has been replaced by the Swift SDK. It will no longer receive new features, bug fixes, security updates, or technical support—however, messaging and analytics will continue to function as normal. To learn more, see Introducing the New Braze Swift SDK.
Intégration de notifications push
Étape 1 : Configurer les notifications push
Avant de pouvoir envoyer une notification push iOS à l’aide de Braze, vous devez fournir votre fichier de notification push .p8
fourni par Apple. Comme décrit dans la documentation du développeur Apple :
- Dans votre compte de développeur Apple, allez dans Certificats, identifiants et 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
.p8
sous 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 d’offre groupée, l’ID de clé et l’ID d’équipe de votre application, puis cliquez sur Enregistrer.
Si vous utilisez l’ancienne version de la navigation, vous pouvez télécharger votre fichier .p8
à partir de Gérer les paramètres > Paramètres.
Étape 2 : Activer les fonctionnalités de notification push
Dans les paramètres de votre projet, assurez-vous que sous l’onglet Capacités, votre capacité de notifications push est basculée.
Si vous disposez de certificats push distincts pour le développement et la production, veillez à décocher la case Gérer automatiquement la signature dans l’onglet Général. Cela vous permettra de choisir différents profils d’approvisionnement pour chaque configuration, car la fonction de signature de code automatique de Xcode ne s’applique qu’aux signatures de développement.
Étape 3 : Inscrivez-vous 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 APN. 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 de poussée personnalisée comme décrit dans nos meilleures pratiques de poussée, assurez-vous que vous appelez le code suivant à chaque fois que l’application s’exécute après qu’ils ont accordé des autorisations de poussée à votre application. Les applications doivent se réenregistrer auprès des APN, car les jetons d’appareils peuvent changer arbitrairement.
Utilisation de l’infrastructure de notification utilisateur (iOS 10+)
Si vous utilisez l’infrastructure 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 de notification 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 du code qui ajoutent UNAuthorizationOptionProvisional
aux options requestAuthorization
.
Consultez les options de notification iOS pour en savoir plus sur l’authentification provisoire par push.
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
manière synchronisée 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 d’Apple UNUserNotificationCenterDelegate
pour en savoir plus.
Sans infrastructure UserNotifications
Si vous utilisez l’infrastructure 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 des jetons avec Braze
Une fois l’enregistrement des APN terminé, la méthode suivante doit être modifiée pour transmettre le résultat deviceToken
à Braze pour 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 que [[UIApplication sharedApplication] registerForRemoteNotifications]
soit employée. Si vous migrez vers Braze depuis un autre service de notification push et que l’appareil de votre utilisateur a déjà enregistré des APN, cette méthode collectera des jetons à partir des enregistrements existants la prochaine fois que la méthode est utilisée, 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 de la conception avec iOS 10+, nous vous recommandons d’intégrer l’infrastructure 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 de 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 vous cliquez sur la notification de premier plan, la notification push iOS 10 déléguée userNotificationCenter:didReceiveNotificationResponse:withCompletionHandler:
sera appelée, et Braze enregistrera un événement 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 de 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 vous cliquez sur la notification de premier plan, la notification push iOS 10 déléguée userNotificationCenter(_:didReceive:withCompletionHandler:)
sera appelée, et Braze enregistrera un événement clic Push.
Pré-iOS 10
iOS 10 a mis à jour les comportements de sorte qu’il ne soit plus appelé application:didReceiveRemoteNotification:fetchCompletionHandler:
lorsqu’une notification push est cliqué. Pour cette raison, si vous ne mettez pas à jour la création sur iOS 10+ et utilisez l’infrastructure UserNotifications
, vous devez utiliser Braze des deux délégués de style ancien, ce qui constitue une rupture par rapport à notre intégration précédente.
Pour les applications conçues avec des SDK < iOS 10, suivez 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 des notifications 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 des notifications 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 : Création de liens profonds
La création de liens profonds d’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 la création de liens profonds vers des emplacements/localisations spécifiques dans votre application, consultez nos cas d’utilisation avancés.
Étape 7 : Tests d’unité (facultatif)
Pour ajouter une couverture de test pour les étapes d’intégration que vous venez de suivre, mettez en œuvre les tests unitaires push.