Configuration initiale du SDK
Cet article de référence explique comment installer le SDK Braze pour React Native. Installer le SDK React Native Braze offre une fonctionnalité d’analytique de base et vous permet d’intégrer des messages in-app et des cartes de contenu pour iOS et Android à l’aide d’une seule codebase.
Prérequis et compatibilité
Pour configurer ce SDK, React Native v0.71 ou une version ultérieure est requise. Pour obtenir la liste complète des versions prises en charge, consultez notre référentiel GitHub du SDK React Native.
Prise en charge de la nouvelle architecture de React Native
Utilisation de Braze avec la nouvelle architecture
Le SDK React Native de Braze est compatible avec toutes les applications utilisant la nouvelle architecture React Native à partir de la version 2.0.1+ du SDK.
À partir de la version 6.0.0 du SDK, une mise à niveau a été appliquée à Braze en interne avec un module Turbo React Native, qui peut toujours être utilisé avec la nouvelle architecture ou l’architecture de pont héritée. Étant donné que le module Turbo est rétrocompatible, aucune étape de migration n’est requise, à l’exception des changements majeurs mentionnés dans le journal des modifications et nécessitant React Native v0.70+.
Si votre application iOS est conforme à RCTAppDelegate
et suivait notre précédente configuration AppDelegate
dans cette documentation, ou dans le projet d’exemple Braze, assurez-vous de consulter les exemples dans Configuration native complète pour éviter tout crash lors de l’abonnement aux événements dans le module Turbo.
Étape 1 : Intégrez la bibliothèque Braze
1
npm install @braze/react-native-sdk
1
yarn add @braze/react-native-sdk
Étape 2 : Configuration native complète
Étape 2.1 : Installer le plugin Braze Expo
Assurez-vous que votre version du SDK React Native de Braze correspond au minimum à 1.37.0. Puis, installez le plugin Braze Expo.
1
expo install @braze/expo-plugin
Étape 2.2 : Ajoutez le plug-in à votre app.json
Dans votre app.json
, ajoutez le Plugin Braze Expo. Vous pouvez fournir les options de configuration suivantes :
Méthode | Type | Description |
---|---|---|
androidApiKey |
chaîne de caractères | Obligatoire. La clé API de votre application Android, située dans votre tableau de bord de Braze sous Gérer les paramètres. |
iosApiKey |
chaîne de caractères | Obligatoire. La clé API de votre application iOS, située dans votre tableau de bord de Braze sous Gérer les paramètres. |
baseUrl |
chaîne de caractères | Obligatoire. Le endpoint SDK de votre application, situé dans votre tableau de bord de Braze sous Gérer les paramètres. |
enableBrazeIosPush |
booléen | iOS uniquement. Si vous devez utiliser Braze pour gérer les notifications push sur iOS. Introduites dans le SDK React Native v1.38.0 et Expo Plugin v0.4.0. |
enableFirebaseCloudMessaging |
booléen | Android uniquement. Si vous devez utiliser Firebase Cloud Messaging pour les notifications push. Introduites dans le SDK React Native v1.38.0 et Expo Plugin v0.4.0. |
firebaseCloudMessagingSenderId |
chaîne de caractères | Android uniquement. Votre ID expéditeur Firebase Cloud Messaging. Introduites dans le SDK React Native v1.38.0 et Expo Plugin v0.4.0. |
sessionTimeout |
Entier | Le délai de session Braze pour votre application en secondes. |
enableSdkAuthentication |
booléen | Détermine si la fonctionnalité Authentification SDK est activée. |
logLevel |
Entier | Le niveau de journal pour votre application. Le niveau de journal par défaut est de 8 et va journaliser le minimum d’informations. Pour activer la journalisation verbeuse pour le débogage, utilisez le niveau 0 du journal. |
minimumTriggerIntervalInSeconds |
Entier | Intervalle minimum en secondes entre les déclenchements. 30 secondes par défaut. |
enableAutomaticLocationCollection |
booléen | Collecte des données de localisation automatique activée ou non (si l’utilisateur l’autorise). |
enableGeofence |
booléen | Activation ou non des géorepérages. |
enableAutomaticGeofenceRequests |
booléen | Demandes de géorepérage automatique ou non. |
dismissModalOnOutsideTap |
booléen | iOS uniquement. Le message in-app modal sera rejeté ou non lorsque l’utilisateur clique à l’extérieur du message in-app. |
androidHandlePushDeepLinksAutomatically |
booléen | Android uniquement. Si le SDK Braze doit gérer automatiquement les liens profonds de notification push. |
androidPushNotificationHtmlRenderingEnabled |
booléen | Android uniquement. Définit si le contenu textuel d’une notification push doit être interprété et rendu en tant que HTML en utilisant android.text.Html.fromHtml . |
androidNotificationAccentColor |
chaîne de caractères | Android uniquement. Définit la couleur d’accentuation de la notification Android. |
androidNotificationLargeIcon |
chaîne de caractères | Android uniquement. Définit l’icône large de la notification Android. |
androidNotificationSmallIcon |
chaîne de caractères | Android uniquement. Définit l’icône de notification petite d’Android. |
iosRequestPushPermissionsAutomatically |
booléen | iOS uniquement. Détermine si l’utilisateur doit être automatiquement invité à autoriser les notifications push au lancement de l’application. |
enableBrazeIosRichPush |
booléen | iOS uniquement. Faut-il activer les fonctionnalités push enrichies pour iOS. |
enableBrazeIosPushStories |
booléen | iOS uniquement. Activer ou non les histoires push Braze pour iOS. |
iosPushStoryAppGroup |
chaîne de caractères | iOS uniquement. Le groupe d’applications utilisé pour les histoires Push iOS. |
Exemple de configuration :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
{
"expo": {
"plugins": [
[
"@braze/expo-plugin",
{
"androidApiKey": "YOUR-ANDROID-API-KEY",
"iosApiKey": "YOUR-IOS-API-KEY",
"baseUrl": "YOUR-SDK-ENDPOINT",
"sessionTimeout": 60,
"enableGeofence": false,
"enableBrazeIosPush": false,
"enableFirebaseCloudMessaging": false,
"firebaseCloudMessagingSenderId": "YOUR-FCM-SENDER-ID",
"androidHandlePushDeepLinksAutomatically": true,
"enableSdkAuthentication": false,
"logLevel": 0,
"minimumTriggerIntervalInSeconds": 0,
"enableAutomaticLocationCollection": false,
"enableAutomaticGeofenceRequests": false,
"dismissModalOnOutsideTap": true,
"androidPushNotificationHtmlRenderingEnabled": true,
"androidNotificationAccentColor": "#ff3344",
"androidNotificationLargeIcon": "@drawable/custom_app_large_icon",
"androidNotificationSmallIcon": "@drawable/custom_app_small_icon",
"iosRequestPushPermissionsAutomatically": false,
"enableBrazeIosPushStories": true,
"iosPushStoryAppGroup": "group.com.example.myapp.PushStories"
}
],
]
}
}
Étape 2.3 : Créer et exécuter votre application
La pré-construction de votre application génère les fichiers natifs nécessaires au fonctionnement de Braze SDK.
1
expo prebuild
Exécutez votre application tel qu’indiqué dans la documentation Expo. Veuillez remarquer que les changements des options de configuration vont vous demander de précréer et d’exécuter à nouveau l’application.
Étape 2.1 : Ajouter notre référentiel
Dans votre projet de niveau supérieur build.gradle
, ajoutez ce qui suit sous buildscript
> dependencies
:
1
2
3
4
5
6
7
buildscript {
dependencies {
...
// Choose your Kotlin version
classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:1.8.10")
}
}
Cela ajoutera Kotlin à votre projet.
Étape 2.2 : Configurer le SDK Braze
Pour vous connecter aux serveurs Braze, créez un fichier braze.xml
dans le dossier res/values
de votre projet. Collez le code suivant et remplacez la clé API et le point de terminaison par vos valeurs :
1
2
3
4
5
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="com_braze_api_key">YOU_APP_IDENTIFIER_API_KEY</string>
<string translatable="false" name="com_braze_custom_endpoint">YOUR_CUSTOM_ENDPOINT_OR_CLUSTER</string>
</resources>
Ajoutez les autorisations requises à votre fichier AndroidManifest.xml
:
1
2
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
Avec la version 12.2.0 du SDK de Braze ou une version ultérieure, vous pouvez intégrer automatiquement la bibliothèque android-sdk-location en définissant importBrazeLocationLibrary=true
dans votre fichier gradle.properties
.
Étape 2.3 : Implémentez le suivi de session utilisateur
Les appels vers openSession()
et closeSession()
sont gérées automatiquement.
Ajoutez le code suivant à la méthode onCreate()
de votre classe MainApplication
:
1
2
3
4
5
6
7
8
import com.braze.BrazeActivityLifecycleCallbackListener;
@Override
public void onCreate() {
super.onCreate();
...
registerActivityLifecycleCallbacks(new BrazeActivityLifecycleCallbackListener());
}
1
2
3
4
5
6
7
import com.braze.BrazeActivityLifecycleCallbackListener
override fun onCreate() {
super.onCreate()
...
registerActivityLifecycleCallbacks(BrazeActivityLifecycleCallbackListener())
}
Étape 2.4 : Gérer les mises à jour d’intention
Si votre activité principale a android:launchMode
défini sur singleTask
, ajoutez le code suivant à votre classe MainActivity
:
1
2
3
4
5
@Override
public void onNewIntent(Intent intent) {
super.onNewIntent(intent);
setIntent(intent);
}
1
2
3
4
override fun onNewIntent(intent: Intent) {
super.onNewIntent(intent)
setIntent(intent)
}
Étape 2.1 : (Facultatif) Configurer le Podfile pour les XCFrameworks dynamiques
Pour importer certaines bibliothèques Braze, telles que BrazeUI, dans un fichier Objective-C++, vous devrez utiliser la syntaxe #import
. À partir de la version 7.4.0 du SDK Braze Swift, les binaires ont un canal de distribution facultatif sous forme de XCFrameworks dynamiques qui sont compatibles avec cette syntaxe.
Si vous souhaitez utiliser ce canal de distribution, remplacez manuellement les emplacements des sources CocoaPods dans votre Podfile. Référez-vous à l’exemple ci-dessous et remplacez {your-version}
par la version pertinente que vous souhaitez importer :
1
2
3
pod 'BrazeKit', :podspec => 'https://raw.githubusercontent.com/braze-inc/braze-swift-sdk-prebuilt-dynamic/{your-version}/BrazeKit.podspec'
pod 'BrazeUI', :podspec => 'https://raw.githubusercontent.com/braze-inc/braze-swift-sdk-prebuilt-dynamic/{your-version}/BrazeUI.podspec'
pod 'BrazeLocation', :podspec => 'https://raw.githubusercontent.com/braze-inc/braze-swift-sdk-prebuilt-dynamic/{your-version}/BrazeLocation.podspec'
Étape 2.2 : Installer les pods
Comme React Native lie automatiquement les bibliothèques à la plateforme native, vous pouvez installer le SDK avec l’aide de CocoaPods.
Dans le dossier racine du projet :
1
2
3
4
5
# To install using the React Native New Architecture
cd ios && RCT_NEW_ARCH_ENABLED=1 pod install
# To install using the React Native legacy architecture
cd ios && pod install
Étape 2.3 : Configurer le SDK Braze
Ajoutez le SDK Braze en haut du fichier AppDelegate.swift
:
1
import BrazeKit
Dans la méthode application(_:didFinishLaunchingWithOptions:)
, remplacez la clé API et le point de terminaison par les valeurs de votre application. Ensuite, créez l’instance Braze à l’aide de la configuration et créez une propriété statique sur AppDelegate
pour un accès facile :
Notre exemple suppose une implémentation de RCTAppDelegate, qui fournit un certain nombre d’abstractions dans la configuration de React Native. Si vous utilisez une configuration différente pour votre application, assurez-vous d’ajuster votre implémentation en conséquence.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
func application(
_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil
) -> Bool {
// Setup Braze
let configuration = Braze.Configuration(
apiKey: "{BRAZE_API_KEY}",
endpoint: "{BRAZE_ENDPOINT}")
// Enable logging and customize the configuration here.
configuration.logger.level = .info
let braze = BrazeReactBridge.perform(
#selector(BrazeReactBridge.initBraze(_:)),
with: configuration
).takeUnretainedValue() as! Braze
AppDelegate.braze = braze
/* Other configuration */
return true
}
// MARK: - AppDelegate.braze
static var braze: Braze? = nil
Ajoutez le SDK Braze en haut du fichier AppDelegate.m
:
1
2
#import <BrazeKit/BrazeKit-Swift.h>
#import "BrazeReactBridge.h"
Dans la méthode application:didFinishLaunchingWithOptions:
, remplacez la clé API et le point de terminaison par les valeurs de votre application. Ensuite, créez l’instance Braze à l’aide de la configuration et créez une propriété statique sur AppDelegate
pour un accès facile :
Notre exemple suppose une implémentation de RCTAppDelegate, qui fournit un certain nombre d’abstractions dans la configuration de React Native. Si vous utilisez une configuration différente pour votre application, assurez-vous d’ajuster votre implémentation en conséquence.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
- (BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Setup Braze
BRZConfiguration *configuration = [[BRZConfiguration alloc] initWithApiKey:@"{BRAZE_API_KEY}"
endpoint:@"{BRAZE_ENDPOINT}"];
// Enable logging and customize the configuration here.
configuration.logger.level = BRZLoggerLevelInfo;
Braze *braze = [BrazeReactBridge initBraze:configuration];
AppDelegate.braze = braze;
/* Other configuration */
return YES;
}
#pragma mark - AppDelegate.braze
static Braze *_braze = nil;
+ (Braze *)braze {
return _braze;
}
+ (void)setBraze:(Braze *)braze {
_braze = braze;
}
Étape 3 : Utilisation
Une fois installé, vous pouvez import
la bibliothèque dans votre code React Native :
1
import Braze from "@braze/react-native-sdk";
Pour plus d’informations, consultez notre exemple de projet.
Testez votre intégration de base
À ce stade, vous pouvez vérifier que le SDK est intégré en vérifiant les statistiques de session dans le tableau de bord. Si vous exécutez votre application sur l’une ou l’autre plateforme, vous devriez voir une nouvelle session dans le tableau de bord (dans la section Aperçu ).
Vous pouvez démarrer une session pour un utilisateur particulier en appelant le code suivant dans votre application.
1
Braze.changeUser("userId");
Par exemple, vous pouvez attribuer l’ID utilisateur au démarrage de l’application :
1
2
3
4
5
6
7
8
9
10
11
12
13
import React, { useEffect } from "react";
import Braze from "@braze/react-native-sdk";
const App = () => {
useEffect(() => {
Braze.changeUser("some-user-id");
}, []);
return (
<div>
...
</div>
)
Vous pouvez ensuite rechercher l’utilisateur avec some-user-id
dans le tableau de bord sous Recherche d’utilisateur. Vous pouvez y vérifier que les données de session et d’appareil ont été enregistrées.