Skip to content

Integração de mensagem no app

Mensagens nativas no app são exibidas automaticamente no Android e iOS ao usar React Native. Este artigo aborda a personalização e o registro de análise de dados para suas mensagens no aplicativo para apps usando React Native.

Acessando dados de mensagem no app

Na maioria dos casos, você pode usar o método Braze.addListener para registrar ouvintes de eventos para lidar com dados provenientes de mensagens no app.

Além disso, você pode acessar os dados da mensagem no app na camada JavaScript chamando o método Braze.subscribeToInAppMessage para que os SDKs publiquem um evento inAppMessageReceived quando uma mensagem no app for acionada. Passe um retorno de chamada para este método para executar seu próprio código quando a mensagem no app for acionada e recebida pelo ouvinte.

Para personalizar ainda mais o comportamento padrão, ou se você não tiver acesso para personalizar o código nativo do iOS ou Android, recomendamos que você desative a interface do usuário padrão enquanto ainda recebe eventos de mensagem no app da Braze. Para desativar a interface do usuário padrão, passe false para o método Braze.subscribeToInAppMessage e use os dados da mensagem no app para construir sua própria mensagem em JavaScript. Nota que você precisará registrar manualmente a análise de dados em suas mensagens se optar por desativar a interface padrão.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import Braze from "@braze/react-native-sdk";

// Option 1: Listen for the event directly via `Braze.addListener`.
//
// You may use this method to accomplish the same thing if you don't
// wish to make any changes to the default Braze UI.
Braze.addListener(Braze.Events.IN_APP_MESSAGE_RECEIVED, (event) => {
  console.log(event.inAppMessage);
});

// Option 2: Call `subscribeToInAppMessage`.
//
// Pass in `false` to disable the automatic display of in-app messages.
Braze.subscribeToInAppMessage(false, (event) => {
  console.log(event.inAppMessage);
  // Use `event.inAppMessage` to construct your own custom message UI.
});

Customização avançada

Para incluir uma lógica mais avançada para determinar se deve ou não mostrar uma mensagem no app usando a interface do usuário integrada, implemente mensagens no app através da camada nativa.

Implemente o IInAppMessageManagerListener conforme descrito em nosso artigo do Android sobre Custom Manager Listener. Na sua beforeInAppMessageDisplayed implementação, você pode acessar os dados inAppMessage, enviá-los para a camada JavaScript e decidir mostrar ou não a mensagem nativa com base no valor de retorno.

Para mais informações sobre esses valores, consulte nossa documentação do Android.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
// In-app messaging
@Override
public InAppMessageOperation beforeInAppMessageDisplayed(IInAppMessage inAppMessage) {
    WritableMap parameters = new WritableNativeMap();
    parameters.putString("inAppMessage", inAppMessage.forJsonPut().toString());
    getReactNativeHost()
        .getReactInstanceManager()
        .getCurrentReactContext()
        .getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class)
        .emit("inAppMessageReceived", parameters);
    // Note: return InAppMessageOperation.DISCARD if you would like
    // to prevent the Braze SDK from displaying the message natively.
    return InAppMessageOperation.DISPLAY_NOW;
}

Substituindo o delegate de interface do usuário padrão

Por padrão, BrazeInAppMessageUI é criado e atribuído quando você inicializa a instância braze. BrazeInAppMessageUI é uma implementação do protocolo BrazeInAppMessagePresenter e vem com uma propriedade delegate que pode ser usada para personalizar o tratamento de mensagens no app que foram recebidas.

  1. Implemente o BrazeInAppMessageUIDelegate conforme descrito em nosso artigo sobre iOS aqui.

  2. No método delegateinAppMessage(_:displayChoiceForMessage:), você pode acessar os dados inAppMessage, enviá-los para a camada JavaScript e decidir mostrar ou não a mensagem nativa com base no valor de retorno.

Para mais detalhes sobre esses valores, consulte nossa documentação do iOS.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
- (enum BRZInAppMessageUIDisplayChoice)inAppMessage:(BrazeInAppMessageUI *)ui
                            displayChoiceForMessage:(BRZInAppMessageRaw *)message {
  // Convert the message to a JavaScript representation.
  NSData *inAppMessageData = [message json];
  NSString *inAppMessageString = [[NSString alloc] initWithData:inAppMessageData encoding:NSUTF8StringEncoding];
  NSDictionary *arguments = @{
    @"inAppMessage" : inAppMessageString
  };

  // Send to JavaScript.
  [self sendEventWithName:@"inAppMessageReceived" body:arguments];

  // Note: Return `BRZInAppMessageUIDisplayChoiceDiscard` if you would like
  // to prevent the Braze SDK from displaying the message natively.
  return BRZInAppMessageUIDisplayChoiceNow;
}

Para usar este delegate, atribua-o a brazeInAppMessagePresenter.delegate após inicializar a instância braze.

1
2
3
4
5
6
7
8
@import BrazeUI;

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
  BRZConfiguration *configuration = [[BRZConfiguration alloc] initWithApiKey:apiKey endpoint:endpoint];
  Braze *braze = [BrazeReactBridge initBraze:configuration];
  ((BrazeInAppMessageUI *)braze.inAppMessagePresenter).delegate = [[CustomDelegate alloc] init];
  AppDelegate.braze = braze;
}

Substituindo a interface de usuário nativa padrão

Se você deseja personalizar totalmente a apresentação de suas mensagens no app na camada nativa do iOS, conforme o protocolo BrazeInAppMessagePresenter e atribua seu apresentador personalizado seguindo o exemplo abaixo:

1
2
3
4
BRZConfiguration *configuration = [[BRZConfiguration alloc] initWithApiKey:apiKey endpoint:endpoint];
Braze *braze = [BrazeReactBridge initBraze:configuration];
braze.inAppMessagePresenter = [[MyCustomPresenter alloc] init];
AppDelegate.braze = braze;

análise de dados e métodos de ação

Você pode usar esses métodos passando sua instânciaBrazeInAppMessage para registro análise de dados e realizar ações:

Método Descrição
logInAppMessageClicked(inAppMessage) Registra um clique para os dados da mensagem no app fornecidos.
logInAppMessageImpression(inAppMessage) Registra uma impressão para os dados da mensagem no app fornecidos.
logInAppMessageButtonClicked(inAppMessage, buttonId) Registra um clique no botão para os dados da mensagem no app fornecidos e o ID do botão.
hideCurrentInAppMessage() Descarta a mensagem no app atualmente exibida.
performInAppMessageAction(inAppMessage) Executa a ação para uma mensagem no app.
performInAppMessageButtonAction(inAppMessage, buttonId) Executa a ação para um botão de mensagem no app.

Teste exibindo uma mensagem no app de exemplo

Siga estas etapas para testar uma mensagem no app de exemplo.

  1. Defina um usuário ativo no aplicativo React chamando o método Braze.changeUserId('your-user-id').
  2. Vá para Campanhas e siga este guia para criar uma nova campanha de mensagem no app.
  3. Componha sua campanha de mensagens no app e vá para a guia Test. Adicione o mesmo user-id que o usuário teste e clique em Send Test (Enviar teste). Você deve conseguir lançar uma mensagem no app no seu dispositivo em breve.

Uma mensagem no app Braze mostrando que você pode adicionar seu próprio ID de usuário como um destinatário de teste para testar sua mensagem no app.

Uma implementação de exemplo pode ser encontrada no BrazeProject, dentro do React Native SDK. Amostras adicionais de implementação do Android e iOS podem ser encontradas no Android e no iOS SDK.

modelo de dados de mensagem no app

O modelo de mensagem no app está disponível no SDK do React Native. Braze tem quatro tipos de mensagem no app que compartilham o mesmo modelo de dados: slideup, modal, full e HTML full.

propriedades do modelo de mensagem no app

O modelo de mensagem no app fornece a base para todas as mensagens no app.

Para uma referência completa do modelo de mensagem no app, consulte a Android e a iOS documentação.

propriedades do modelo de botão de mensagem no app

Botões podem ser adicionados às mensagens no app para realizar ações e registrar análise de dados. O modelo de botão fornece a base para todos os botões de mensagem no app.

Para uma referência completa do modelo de botão, consulte a Android e a iOS documentação.

Suporte a GIFs

You can add animated GIFs to your in-app messages using the native Braze Android SDK. By default, the Android SDK uses HTML in-app messages to display GIFs.

For all other in-app message types, you’ll need to use a custom image library. To learn more, see Android In-App Messaging: GIFs.

You can add animated GIFs to your in-app messages using the native Braze Swift SDK. By default, all Braze in-app messages support GIFs. For a full walkthrough, see Tutorial: GIF Support for Swift In-App Messages.

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