Skip to content

Integração de notificações por push

Este artigo de referência aborda como definir notificações por push para o React Native. A integração de notificações por push requer a configuração de cada plataforma nativa separadamente. Siga os respectivos guias listados para concluir a instalação.

Etapa 1: Concluir a configuração inicial

Defina as opções enableBrazeIosPush e enableFirebaseCloudMessaging em seu arquivo app.json para ativar o push para iOS e Android, respectivamente. Consulte as instruções de configuração aqui para obter mais detalhes.

Note que será necessário usar essas configurações em vez das instruções de configuração nativas se estiver dependendo de bibliotecas adicionais de notificação por push, como a Expo Notifications.

Etapa 1.1: Registro para push

Registre-se para push usando a API Firebase Cloud Messaging (FCM) do Google. Para obter um passo a passo completo, consulte as etapas a seguir do guia de integração de push do Android nativo:

  1. Adicione o Firebase ao seu projeto.
  2. Adicione o Cloud Messaging às suas dependências.
  3. Crie uma conta de serviço.
  4. Gerar credenciais JSON.
  5. Faça upload de suas credenciais JSON na Braze.

Etapa 1.2: Adicione seu ID de remetente do Google

Primeiro, acesse o Firebase Console, abra seu projeto e selecione Settings > Project settings.

O projeto Firebase com o menu "Settings" (Configurações) aberto.

Selecione Envio de mensagens na nuvem e, em seguida, em Firebase Cloud Messaging API (V1), copie o ID do remetente para a área de transferência.

A página "Cloud Messaging" do projeto Firebase com o "Sender ID" destacado.

Em seguida, abra o arquivo app.json do seu projeto e defina a propriedade firebaseCloudMessagingSenderId como o ID do remetente na área de transferência. Por exemplo:

1
"firebaseCloudMessagingSenderId": "693679403398"

Etapa 1.3: Adicione a jornada ao seu JSON do Google Services

No arquivo app.json de seu projeto, adicione a jornada para seu arquivo google-services.json. Esse arquivo é necessário ao definir enableFirebaseCloudMessaging: true em sua configuração.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
{
  "expo": {
    "android": {
      "googleServicesFile": "PATH_TO_GOOGLE_SERVICES"
    },
    "plugins": [
      [
        "@braze/expo-plugin",
        {
          "androidApiKey": "YOUR-ANDROID-API-KEY",
          "iosApiKey": "YOUR-IOS-API-KEY",
          "enableBrazeIosPush": true,
          "enableFirebaseCloudMessaging": true,
          "firebaseCloudMessagingSenderId": "YOUR-FCM-SENDER-ID",
          "androidHandlePushDeepLinksAutomatically": true
        }
      ],
    ]
  }
}

Etapa 1.1: Faça upload de certificados APNs

Gere um certificado do serviço de Notificações por Push da Apple (APNs) e faça upload dele no dashboard do Braze. Veja um passo a passo completo em Como fazer upload de seu certificado de APNs.

Etapa 1.2: Escolha um método de integração

Se não planeja solicitar permissões push quando o aplicativo for iniciado, omita a chamada requestAuthorizationWithOptions:completionHandler: em seu AppDelegate e pule para a etapa 2. Caso contrário, siga o guia de integração nativa do iOS.

Quando terminar, continue na etapa 1.3.

Etapa 1.3: Migre sua chave push

Se estava usando anteriormente o site expo-notifications para gerenciar sua chave push, execute o site expo fetch:ios:certs na pasta raiz do seu aplicativo. Isso baixará sua chave push (um arquivo .p8), que poderá ser feito upload no dashboard da Braze.

Etapa 2: Solicitar permissão para notificações por push

Use o método Braze.requestPushPermission() (disponível na versão v1.38.0 e superior) para solicitar permissão para notificações por push do usuário no iOS e no Android 13+. Para o Android 12 e versões inferiores, esse método não funciona.

Esse método recebe um parâmetro obrigatório que especifica quais permissões o SDK deve solicitar do usuário no iOS. Essas opções não têm efeito no Android.

1
2
3
4
5
6
7
8
const permissionOptions = {
  alert: true,
  sound: true,
  badge: true,
  provisional: false
};

Braze.requestPushPermission(permissionOptions);

Etapa 2.1: Ouça as notificações por push (opcional)

Além disso, você pode se inscrever em eventos em que o Braze detectou e tratou uma notificação por push recebida. Use a tecla do ouvinte Braze.Events.PUSH_NOTIFICATION_EVENT.

1
2
3
4
Braze.addListener(Braze.Events.PUSH_NOTIFICATION_EVENT, data => {
  console.log(`Push Notification event of type ${data.payload_type} seen. Title ${data.title}\n and deeplink ${data.url}`);
  console.log(JSON.stringify(data, undefined, 2));
});

Campos de eventos de notificação por push

Para obter uma lista completa dos campos de notificação por push, consulte a tabela abaixo:

Etapa 3: Ativar o deep linking (opcional)

Para ativar a Braze para lidar com deep linkings dentro de componentes React quando uma notificação por push for clicada, siga as etapas adicionais.

Nosso app de amostra BrazeProject contém um exemplo completo de deep linking implementado. Para saber mais sobre o que são deep linkings, consulte nosso artigo de perguntas frequentes.

No Android, a configuração de deep links é idêntica à configuração de deep links em apps nativos do Android. Se quiser que o SDK da Braze manipule automaticamente os deep links de push, defina androidHandlePushDeepLinksAutomatically: true em seu app.json.

Etapa 3.1: Adicionar recursos de deep linking

Para iOS, adicione populateInitialUrlFromLaunchOptions ao método didFinishLaunchingWithOptions de seu AppDelegate. Por exemplo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
  self.moduleName = @"BrazeProject";
  self.initialProps = @{};

  BRZConfiguration *configuration = [[BRZConfiguration alloc] initWithApiKey:apiKey endpoint:endpoint];
  configuration.triggerMinimumTimeInterval = 1;
  configuration.logger.level = BRZLoggerLevelInfo;
  Braze *braze = [BrazeReactBridge initBraze:configuration];
  AppDelegate.braze = braze;

  [self registerForPushNotifications];
  [[BrazeReactUtils sharedInstance] populateInitialUrlFromLaunchOptions:launchOptions];

  return [super application:application didFinishLaunchingWithOptions:launchOptions];
}

Etapa 3.2: Configurar o tratamento de deep linking

Use o método Linking.getInitialURL() para deep links que abrem o aplicativo e o método Braze.getInitialURL para deep links dentro de notificações por push que abrem o aplicativo quando ele não está em execução. Por exemplo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Linking.getInitialURL()
  .then(url => {
    if (url) {
      console.log('Linking.getInitialURL is ' + url);
      showToast('Linking.getInitialURL is ' + url);
      handleOpenUrl({ url });
    }
  })
  .catch(err => console.error('Error getting initial URL', err));

// Handles deep links when an iOS app is launched from a hard close via push click.
Braze.getInitialURL(url => {
  if (url) {
    console.log('Braze.getInitialURL is ' + url);
    showToast('Braze.getInitialURL is ' + url);
    handleOpenUrl({ url });
  }
});

Etapa 4: Teste a exibição de notificações por push

Nesse ponto, você deve poder enviar notificações aos dispositivos. Siga as etapas a seguir para testar sua integração push.

  1. Defina um usuário ativo no aplicativo React chamando o método Braze.changeUserId('your-user-id').
  2. Vá para Campaigns (Campanhas ) e crie uma nova campanha de notificação por push. Escolha as plataformas que você gostaria de testar.
  3. Crie sua notificação de teste e vá para a guia Teste. Adicione o mesmo user-id que o usuário teste e clique em Send Test (Enviar teste). Você deverá receber a notificação em seu dispositivo em breve.

Uma campanha de push Braze mostrando que você pode adicionar seu próprio ID de usuário como um destinatário de teste para testar sua notificação por push.

Encaminhamento de push do Android para FMS adicionais

Se quiser usar um Firebase Messaging Service (FMS) adicional, você pode especificar um FMS fallback para chamar se o aplicativo receber um push que não seja do Braze. Por exemplo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
{
  "expo": {
    "plugins": [
      [
        "@braze/expo-plugin",
        {
          ...
          "androidFirebaseMessagingFallbackServiceEnabled": true,
          "androidFirebaseMessagingFallbackServiceClasspath": "com.company.OurFirebaseMessagingService"
        }
      ]
    ]
  }
}

Configuração de extensões de app com o Expo

Capacitação de notificações por push avançadas para iOS

Para ativar notificações por push avançadas no iOS usando o Expo, configure a propriedade enableBrazeIosRichPush como true em seu objeto expo.plugins em app.json:

1
2
3
4
5
6
7
8
9
10
11
12
13
{
  "expo": {
    "plugins": [
      [
        "@braze/expo-plugin",
        {
          ...
          "enableBrazeIosRichPush": true
        }
      ]
    ]
  }
}

Por fim, adicione o identificador de pacote para essa extensão de app à configuração de credenciais de seu projeto: <your-app-bundle-id>.BrazeExpoRichPush. Para obter mais detalhes sobre esse processo, consulte Uso de extensões de app com o Expo Application Services.

Ativando o Push Stories para iOS

Para ativar os stories por push no iOS usando o Expo, é necessário ter um grupo de app definido para seu aplicativo. Para saber mais, veja Adicionando um grupo de app.

Em seguida, configure a propriedade enableBrazeIosPushStories para true e atribua o ID do grupo de app a iosPushStoryAppGroup em seu objeto expo.plugins em app.json:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
{
  "expo": {
    "plugins": [
      [
        "@braze/expo-plugin",
        {
          ...
          "enableBrazeIosPushStories": true,
          "iosPushStoryAppGroup": "group.com.company.myApp.PushStories"
        }
      ]
    ]
  }
}

Por fim, adicione o identificador de pacote para essa extensão de app à configuração de credenciais de seu projeto: <your-app-bundle-id>.BrazeExpoPushStories. Para obter mais detalhes sobre esse processo, consulte Uso de extensões de app com o Expo Application Services.

Uso de extensões de app com o Expo Application Services

Se estiver usando o Expo Application Services (EAS) e tiver ativado enableBrazeIosRichPush ou enableBrazeIosPushStories, será necessário declarar os identificadores de pacote correspondentes para cada extensão de app em seu projeto. Há várias maneiras de abordar essa etapa, dependendo de como seu projeto está configurado para gerenciar a assinatura de código com o EAS.

Uma abordagem é usar a configuração appExtensions em seu arquivo app.json seguindo a documentação de extensões de app da Expo. Como alternativa, você pode definir a configuração multitarget em seu arquivo credentials.json seguindo a documentação sobre credenciais de localização da Expo.

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