Skip to content

Configuração inicial do SDK

Este artigo de referência aborda como instalar o SDK da Braze para React Native. A instalação do SDK da Braze para React Native fornece a funcionalidade básica de análise de dados e permite que você integre mensagens no app e cartões de conteúdo para iOS e Android com apenas uma base de código.

Pré-requisitos e compatibilidade

Para configurar esse SDK, é necessário o React Native v0.71 ou posterior. Para obter a lista completa de versões compatíveis, consulte nosso repositório do GitHub do React Native SDK.

Suporte à nova arquitetura do React Native

Usando a Braze com a nova arquitetura

O SDK da Braze para React Native é compatível com todos os apps que usam a nova arquitetura React Native a partir da versão 2.0.1+ do SDK.

A partir da versão 6.0.0 do SDK, a Braze passou por um upgrade interno para um módulo turbo React Native, que ainda pode ser usado com a nova arquitetura ou com a arquitetura de ponte herdada. Como o Turbo Module é compatível com versões anteriores, não são necessárias etapas de migração além das alterações de ruptura mencionadas no Changelog e que exigem o React Native v0.70+.

Etapa 1: Integrar a biblioteca do Braze

1
npm install @braze/react-native-sdk
1
yarn add @braze/react-native-sdk

Etapa 2: Configuração nativa completa

Etapa 2.1: Instale o plug-in Braze Expo

Confira se sua versão do SDK da Braze para React Native seja, no mínimo, 1.37.0. Em seguida, instale o plug-in Braze Expo.

1
expo install @braze/expo-plugin

Etapa 2.2: Adicione o plug-in ao seu app.json

Em app.json, adicione o plug-in Braze Expo. Você pode fornecer as seguintes opções de configuração:

Exemplo de configuração:

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"
        }
      ],
    ]
  }
}

Etapa 2.3: Crie e execute seu aplicativo

A pré-compilação do seu aplicativo gerará os arquivos nativos necessários para que o SDK da Braze funcione.

1
expo prebuild

Execute seu aplicativo conforme especificado nos documentos da Expo. Note que, para fazer qualquer alteração nas opções de configuração, será necessário fazer o pré-compilamento e executar o aplicativo novamente.

Etapa 2.1: Adicionar nosso repositório

Em seu projeto de nível superior build.gradle, adicione o seguinte em 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")
    }
}

Isso adicionará o Kotlin ao seu projeto.

Etapa 2.2: Configurar o SDK do Braze

Para se conectar aos servidores da Braze, crie um arquivo braze.xml na pasta res/values do projeto. Cole o código a seguir e substitua a chave de API e o ponto final por seus valores:

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>

Adicione as permissões necessárias ao seu arquivo AndroidManifest.xml:

1
2
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

Etapa 2.3: Implemente o rastreamento da sessão do usuário

As chamadas para openSession() e closeSession() são tratadas automaticamente. Adicione o seguinte código ao método onCreate() de sua 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())
}

Etapa 2.4: Lidar com atualizações de intenção

Se sua MainActivity tiver android:launchMode definido como singleTask, adicione o seguinte código à sua 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)
}

Etapa 2.1: (Opcional) Configurar o Podfile para XCFrameworks dinâmicos

Para importar determinadas bibliotecas da Braze, como a BrazeUI, em um arquivo Objective C++, você precisará usar a sintaxe #import. A partir da versão 7.4.0 do Braze Swift SDK, os binários têm um canal de distribuição opcional como XCFrameworks dinâmicos, que são compatíveis com essa sintaxe.

Se quiser usar esse canal de distribuição, substitua manualmente os locais de origem do CocoaPods em seu Podfile. Consulte o exemplo abaixo e substitua {your-version} pela versão relevante que você deseja importar:

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'

Etapa 2.2: Instalar pods

Como o React Native vincula automaticamente as bibliotecas à plataforma nativa, você pode instalar o SDK com a ajuda do CocoaPods.

Na pasta raiz do projeto:

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

Etapa 2.3: Configurar o SDK do Braze

Importe o SDK da Braze na parte superior do arquivo AppDelegate.swift:

1
import BrazeKit

No método application(_:didFinishLaunchingWithOptions:), substitua a chave de API e o endpoint pelos valores de seu app. Em seguida, crie a instância da Braze usando a configuração e crie uma propriedade estática em AppDelegate para facilitar o acesso:

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

Importe o SDK da Braze na parte superior do arquivo AppDelegate.m:

1
2
#import <BrazeKit/BrazeKit-Swift.h>
#import "BrazeReactBridge.h"

No método application:didFinishLaunchingWithOptions:, substitua a chave de API e o endpoint pelos valores de seu app. Em seguida, crie a instância da Braze usando a configuração e crie uma propriedade estática em AppDelegate para facilitar o acesso:

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;
}

Etapa 3: Uso

Depois de instalada, você pode import a biblioteca em seu código React Native:

1
import Braze from "@braze/react-native-sdk";

Para saber mais, consulte nosso projeto de amostra.

Teste sua integração básica

Nesse ponto, você pode verificar se o SDK está integrado verificando as estatísticas da sessão no dashboard. Se você executar seu aplicativo em qualquer uma das plataformas, deverá ver uma nova sessão no dashboard (na seção Visão geral ).

Você pode iniciar uma sessão para um usuário específico chamando o seguinte código em seu app.

1
Braze.changeUser("userId");

Por exemplo, é possível atribuir o ID do usuário na inicialização do app:

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

Em seguida, você pode procurar o usuário com some-user-id no dashboard em User Search. Lá, é possível verificar se os dados da sessão e do dispositivo foram registrados.

QUÃO ÚTIL FOI ESTA PÁGINA?
New Stuff!