Skip to content


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 :

  1. Dans votre compte de développeur Apple, allez dans Certificats, identifiants et profils.
  2. Sous Clés, sélectionnez Tous et cliquez sur le bouton d’ajout (+) dans le coin supérieur droit.
  3. Sous Description de la clé, saisissez un nom unique pour la clé de signature.
  4. Sous Services clés, cochez la case Service de notification push d’Apple (APN), puis cliquez sur Continuer. Cliquez sur Confirmer.
  5. 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.
  6. 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.
  7. 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.

É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.

Les paramètres du projet Xcode affichant l’onglet « General » (Généralités). Dans cet onglet, l'option "Gérer automatiquement la signature" est décochée.

É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.

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.

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

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)

É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.

CETTE PAGE A-T-ELLE ÉTÉ UTILE?
New Stuff!