Para o envio e recebimento de notificações push móveis por meio do Mobile SDK para Android, você precisará configurar o Firebase Cloud Messaging. Este artigo explica os passos necessários para realizar a configuração.
1. Criar e configurar o projeto no Firebase
1.1. Criar e configurar um projeto no Firebase
O primeiro passo será ter um projeto configurado no console do Firebase; caso não tenha, você pode seguir o guia do Google para a criação e configuração inicial do Firebase no Android.
Uma vez concluído esse passo, você terá obtido o arquivo google-services.json e terá o Google Play Service no nível do projeto e do app, além da dependência do Firebase no nível do app (dentro dos seus arquivos Build.gradle).
1.2. Configuração do FirebaseMessagingService
Dentro do seu projeto Android, será necessário implementar o serviço FirebaseMessagingService, que permitirá receber notificações por meio do onMessageReceived e registrar alterações no token push com o onNewToken.
a. Recebimento de notificações em onMessageReceived
No método onMessageReceived receberemos as notificações geradas a partir dos nossos Workflows no Connectif; para manipular esses pushs, usaremos Connectif.handlePushNotification, que retornará um booleano indicando se o push foi tratado pelo Connectif, como mostrado na implementação, onde o utilizamos para lidar com todos os pushs que não são provenientes do Connectif.
override fun onMessageReceived(remoteMessage: RemoteMessage) {
if (!Connectif.handlePushNotification(
remoteMessage.data,
applicationContext
)
) {
// Outros provedores de push
}
}Se desejar identificar se o push vem do Connectif e não quiser tratá-lo naquele momento, poderá usar Connectif.isConnectifPushNotification.
b. Registrar alterações no token push
Na primeira vez que o app iniciar, ele gera um novo token, que poderá ser registrado através do serviço com onNewToken.
override fun onNewToken(token: String) {
Connectif.addPushToken(token)
}
Nota importante sobre permissões: Ao chamar o método Connectif.addPushToken(token), o SDK do Connectif enviará automaticamente, junto com o novo token, o estado atual das permissões de notificações push do usuário no dispositivo. Isso garante que o Connectif tenha sempre informações atualizadas sobre a capacidade do usuário de receber notificações em tempo real.
Este token poderá mudar nos seguintes casos:
- O app é restaurado em um dispositivo novo.
- O usuário desinstala e reinstala o app.
- O usuário apaga os dados do app.
Este será o aspecto da nossa implementação do FirebaseMessagingService.
class MyFirebaseMessagingService : FirebaseMessagingService() {
private val notificationManager by lazy {
getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
}
override fun onMessageReceived(remoteMessage: RemoteMessage) {
if (!Connectif.handlePushNotification(
remoteMessage.data,
notificationManager,
applicationContext
)
) {
// Outros provedores de push
}
}
override fun onNewToken(token: String) {
Connectif.addPushToken(token)
}
}Deve-se levar em conta que, se não for a primeira inicialização do app, o onNewToken não será executado, por isso é interessante obter o token push atual da instância do Firebase e enviá-lo para o Connectif. Os locais apropriados para isso são durante o onCreate no objeto Application ou na Activity principal.
class SampleApp : Application() {
override fun onCreate() {
super.onCreate()
FirebaseMessaging.getInstance().token.addOnSuccessListener {
Connectif.addPushToken(it, applicationContext)
}
}
}
c. Adicionar FirebaseMessagingService ao arquivo AndroidManifest
Para usar o serviço de mensagens, devemos adicioná-lo ao arquivo AndroidManifest.
<service
android:name=".mypackages.MyFirebaseMessagingService"
android:exported="false">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</service>2. Configurar Android na Integração App Móvel do Connectif
Para realizar o envio de push pelo Connectif, precisaremos que você nos forneça a chave privada (arquivo JSON) da Conta de Serviço para o Google Cloud. Os passos para criação são os seguintes.
Na Console do Firebase, acessaremos nosso projeto, dentro de "Configuração do projeto" entraremos em "Contas de Serviço".
Mantendo o check em Node.js, clique em "Gerar nova chave privada". Esta ação irá gerar um arquivo JSON que precisaremos mais adiante.
No Connectif, iremos para a configuração da nossa loja, na seção do canal App Móvel. Encontraremos uma seção Android que permitirá enviar o arquivo baixado do Firebase.
E este será o aspecto da nossa integração quando tivermos enviado o arquivo corretamente.
Uma vez realizados esses passos, teremos a integração do Firebase Cloud Messaging pronta para enviar pushs a partir dos nossos workflows.
3. Configuração adicional
Lembre-se que ao iniciar o SDK poderá definir alguns valores usando o parâmetro ConnectifConfig em Connectif.initialize().
3.1. Ícone
Por padrão, teremos um ícone atribuído às nossas notificações push:
ic_default_notification
Se desejar, poderá personalizá-lo indicando o recurso na propriedade pushSmallIcon de ConnectifConfig ao iniciar o SDK; lembre-se que para que seja exibido corretamente deve conter apenas cor branca e transparências.
3.2. Canal de notificações
A partir do Android 8 é obrigatório criar um canal para mostrar as notificações; por padrão, atribuímos às notificações exibidas pelo Connectif o nome do canal "Default Channel" e "connectif_channel" como identificador do canal.
Você poderá nos informar seu nome e canal personalizado usando as propriedades pushChannelName e pushChannelId de ConnectifConfig ao iniciar o SDK.
3.3. Atualização do estado das permissões de notificações
Se precisar forçar a atualização do estado das permissões de notificações push do usuário (por exemplo, se o usuário modificou as permissões nas configurações do sistema Android e você deseja refletir essa mudança imediatamente no Connectif), pode usar o método updatePushPermissionStatus().
Este método permite enviar para o SDK o estado atual das permissões de notificação do dispositivo a qualquer momento.
Connectif.updatePushPermissionStatus()Continue aprendendo!
Para aproveitar todo o potencial da sua conta no Connectif, recomendamos continuar com os seguintes artigos:
- Android SDK Get Started, para adicionar o Connectif Mobile SDK ao seu projeto Android.
- Guia completo para integrar Connectif com seu App Móvel, para conhecer em profundidade todas as mudanças desta integração.
- iOS SDK Get Started, para adicionar o Connectif Mobile SDK ao seu projeto iOS.
- Configuração Apple Push Notifications Service, para ativar o envio e recebimento de push via Mobile SDK para iOS.