Notificações por push silenciosas
Aprenda como configurar notificações por push silenciosas para o SDK Braze.
Pré-requisitos
Antes de usar este recurso, você precisará integrar o SDK Android da Braze. Você também precisará configurar notificações por push.
Configurando notificações por push silenciosas
Notificações silenciosas estão disponíveis por meio da API de envio de mensagens da Braze. Para utilizá-las, você precisa definir o flag send_to_sync como true no objeto push do Android e garantir que não haja campos title ou alert definidos, pois eles causarão erros quando usados junto com send_to_sync—no entanto, você pode incluir dados extras dentro do objeto.
Pré-requisitos
Antes de poder usar esse recurso, você precisará integrar o Braze Swift SDK. Você também precisará configurar notificações por push.
Limitações do iOS
O sistema operacional iOS pode bloquear notificações para alguns recursos. Se você estiver enfrentando dificuldades com esses recursos, o bloqueio de notificações silenciosas do iOS pode ser a causa. Para saber mais, consulte a documentação da Apple sobre método de instância e notificações não recebidas.
Configurando notificações por push silenciosas
Para usar notificações por push silenciosas para disparar trabalhos em segundo plano, você deve configurar seu app para receber notificações mesmo quando ele estiver em segundo plano. Para isso, adicione a capacidade Background Modes usando o painel Signing & Capabilities ao alvo principal do app no Xcode. Marque a caixa de seleção Remote notifications.

Mesmo com o modo de segundo plano de notificações remotas ativado, o sistema não iniciará seu app em segundo plano se o usuário tiver forçado o encerramento do aplicativo. O usuário deve iniciar o aplicativo explicitamente ou reiniciar o dispositivo antes que o app possa ser iniciado automaticamente em segundo plano pelo sistema.
Para saber mais, consulte pushing background updates e a documentação de application:didReceiveRemoteNotification:fetchCompletionHandler:.
Enviando notificações por push silenciosas
Para enviar uma notificação por push silenciosa, defina o flag content-available como 1 na carga útil de uma notificação por push.

O que a Apple chama de notificação remota é simplesmente uma notificação por push normal com o flag content-available definido.
O flag content-available pode ser definido no dashboard da Braze, bem como no nosso objeto push da Apple na API de envio de mensagens.

Não é recomendado incluir título e corpo junto com content-available=1, pois isso pode levar a um comportamento indefinido. Para garantir que uma notificação seja realmente silenciosa, exclua o título e o corpo ao definir o flag content-available como 1. Para mais detalhes, consulte a documentação oficial da Apple sobre atualizações em segundo plano.

Ao enviar uma notificação por push silenciosa, você também pode incluir alguns dados na carga útil da notificação, para que seu app possa fazer referência ao evento. Isso pode economizar algumas solicitações de rede e aumentar a responsividade do seu app.
Ignorando notificações por push internas
A Braze usa notificações por push silenciosas para gerenciar internamente certos recursos avançados, como o Uninstall Tracking. Se o seu app executa ações automáticas ao abrir o aplicativo ou ao receber pushes em segundo plano, considere controlar essa atividade para que ela não seja disparada por notificações por push internas.
Por exemplo, se você tem uma lógica que chama seus servidores para buscar novo conteúdo a cada push em segundo plano ou abertura do aplicativo, talvez queira evitar que os pushes internos da Braze disparem essa chamada, evitando tráfego de rede desnecessário. Como a Braze envia certos tipos de pushes internos para todos os usuários aproximadamente ao mesmo tempo, uma carga significativa no servidor pode ocorrer se as chamadas de rede na abertura não forem controladas.
Etapa 1: Verifique ações automáticas no seu app
Verifique se há ações automáticas no seu aplicativo nos seguintes locais e atualize seu código para ignorar os pushes internos da Braze:
- Push Receivers. Notificações por push em segundo plano chamam
application:didReceiveRemoteNotification:fetchCompletionHandler:noUIApplicationDelegate. - Application Delegate. Pushes em segundo plano podem iniciar apps suspensos em segundo plano, disparando os métodos
application:willFinishLaunchingWithOptions:eapplication:didFinishLaunchingWithOptions:no seuUIApplicationDelegate. Verifique aslaunchOptionsdesses métodos para determinar se o aplicativo foi iniciado a partir de um push em segundo plano.
Etapa 2: Use o método utilitário de push interno
Você pode usar o método utilitário estático em Braze.Notifications para verificar se o seu app recebeu ou foi iniciado por um push interno da Braze. Braze.Notifications.isInternalNotification(_:) retorna true para todas as notificações por push internas da Braze, incluindo Uninstall Tracking e notificações de sincronização de Feature Flags.
Por exemplo:
func application(_ application: UIApplication,
didReceiveRemoteNotification userInfo: [AnyHashable : Any],
fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) {
if (!Braze.Notifications.isInternalNotification(userInfo)) {
// Gated logic here (for example pinging server for content)
}
}
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult result))completionHandler {
if (![BRZNotifications isInternalNotification:userInfo]) {
// Gated logic here (for example pinging server for content)
}
}
Pré-requisitos
Antes de usar este recurso, você precisará integrar o SDK Android da Braze. Você também precisará configurar notificações por push.
Configurando notificações por push silenciosas
Notificações silenciosas estão disponíveis por meio da API de envio de mensagens da Braze. Para utilizá-las, você precisa definir o flag send_to_sync como true no objeto push do Android e garantir que não haja campos title ou alert definidos, pois eles causarão erros quando usados junto com send_to_sync—no entanto, você pode incluir dados extras dentro do objeto.