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:

Método Tipo Descrição
androidApiKey string Necessário. A chave de API do seu aplicativo Android, localizada no dashboard do Braze em Manage Settings (Gerenciar configurações).
iosApiKey string Necessário. A chave de API para seu aplicativo iOS, localizada no dashboard do Braze em Manage Settings (Gerenciar configurações).
baseUrl string Necessário. O endpoint do SDK para seu app, localizado no dashboard da Braze em Gerenciar configurações.
enableBrazeIosPush booleano Somente iOS. Se deve usar a Braze para lidar com notificações por push no iOS. Introduzido no React Native SDK v1.38.0 e no Expo Plugin v0.4.0.
enableFirebaseCloudMessaging booleano Somente para Android. Define se deve usar o Firebase Cloud Messaging para notificações por push. Introduzido no React Native SDK v1.38.0 e no Expo Plugin v0.4.0.
firebaseCloudMessagingSenderId string Somente para Android. Seu ID de remetente do Firebase Cloud Messaging. Introduzido no React Native SDK v1.38.0 e no Expo Plugin v0.4.0.
sessionTimeout inteiro O tempo limite da sessão do Braze para seu aplicativo, em segundos.
enableSdkAuthentication booleano Define se deve ativar o recurso de autenticação do SDK.
logLevel inteiro Define o nível de registro para o seu aplicativo. O nível de registro padrão é 8 e registrará minimamente as informações. Para ativar o registro detalhado para depuração, use o nível de registro 0.
minimumTriggerIntervalInSeconds inteiro O intervalo de tempo mínimo, em segundos, entre os disparos. O padrão é 30 segundos.
enableAutomaticLocationCollection booleano Se a coleta automática de locais está ativada (se o usuário permitir).
enableGeofence booleano Se as geofences estão ativadas.
enableAutomaticGeofenceRequests booleano Se as solicitações de geofence devem ser feitas automaticamente.
dismissModalOnOutsideTap booleano Somente iOS. Se uma mensagem modal no app será descartada quando o usuário clicar fora da mensagem no app.
androidHandlePushDeepLinksAutomatically booleano Somente para Android. Se o SDK da Braze deve tratar automaticamente os deep links de push.
androidPushNotificationHtmlRenderingEnabled booleano Somente para Android. Define se o conteúdo do texto em uma notificação por push deve ser interpretado e renderizado como HTML usando android.text.Html.fromHtml.
androidNotificationAccentColor string Somente para Android. Define a cor de destaque da notificação do Android.
androidNotificationLargeIcon string Somente para Android. Define o ícone grande de notificação do Android.
androidNotificationSmallIcon string Somente para Android. Define o ícone pequeno de notificação do Android.
iosRequestPushPermissionsAutomatically booleano Somente iOS. Define se o usuário deve ser automaticamente solicitado a fornecer permissões push na inicialização do app.
enableBrazeIosRichPush booleano Somente iOS. Define se deve ativar recursos avançados de push para iOS.
enableBrazeIosPushStories booleano Somente iOS. Se deseja ativar os stories por push da Braze para iOS.
iosPushStoryAppGroup string Somente iOS. O grupo de app usado para o iOS Push Stories.
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!