Módulo responsável por entregar e exibir notificações segmentadas no aplicativo. Estas notificações podem ser apresentadas em 3 formatos:
- Push notification comum, com imagem ou carrossel de imagens.
- Inbox de mensagens.
- InApp Messages.
Antes de começar
Para integrar o módulo de notifications da MDM, o aplicativo precisa ter push notifications do Firebase integrado.
Caso você não possua push notifications do Firebase integrado ao seu aplicativo, siga as instruções em https://firebase.google.com/docs/
Implementação base:
Adicione o seguinte service ao seu manifesto, dentro da tag application:
<service
android:name="br.com.hands.mdm.libs.android.notification.services.MDMMessagingService"
android:exported="false"
android:stopWithTask="false">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</service>
Tem suas próprias classes extendendo as classes do Firebase e não quer implementar os services acima?
Siga as instruções abaixo:
1. Para registrar o token fornecido pelo Firebase, adicione o seguinte código na sobrecarga do método onNewToken na classe que extende FirebaseMessagingService:
MDMNotification.registerToken(newToken, getApplicationContext());
2. Para receber o push da MDM, adicione o seguinte código na sobrecarga do método onMessageReceived na classe que extende FirebaseMessagingService:
if (MDMNotification.isMDMNotification(remoteMessage.getData())) {
MDMNotification.processNotification(remoteMessage.getData(), getApplicationContext());
} else {
// Minha Notificação
}
Implementação específica:
- Push Notification
Para a implementação do formato push notification, nada mais é necessário.
- Inbox
Para a implementação do formato Inbox, adicione o seguinte código para quando desejar exibir o conteúdo:
startActivity(new Intent(getApplicationContext(), MDMInboxActivity.class));
Para customização do texto da barra de título, adicione o seguinte código a sua application:
MDMInbox.setTitle("Inbox");
Para customização da cor da barra de título, adicione o seguinte código a sua application:
MDMInbox.setStatusBarColor("#96221B");
MDMInbox.setToolBarColor("#B3342F");
Para customização fixa das abas exibidas, adicione o seguinte código a sua application, edite de acordo com a necessidade:
MDMInbox.setActiveTabs(new MDMInbox.Tab[]{
MDMInbox.Tab.COUPONS,
MDMInbox.Tab.NOTIFICATIONS,
MDMInbox.Tab.APPINSTALL,
MDMInbox.Tab.MARKETPLACE
});
Para customização variável das abas exibidas, adicione o seguinte código no momento da chamada de exibição do conteúdo, edite de acordo com a necessidade:
Intent intent = new Intent(getApplicationContext(), MDMInboxActivity.class);
MDMInboxConfig inboxConfig = new MDMInboxConfig();
inboxConfig.setActiveTabs(new MDMInbox.Tab[]{
MDMInbox.Tab.NOTIFICATIONS,
MDMInbox.Tab.COUPONS,
MDMInbox.Tab.APPINSTALL,
MDMInbox.Tab.MARKETPLACE
});
inboxConfig.setSelectedTab(MDMInbox.Tab.COUPONS);
intent.putExtra(MDMNotification.INBOX_CONFIG_KEY, inboxConfig);
startActivity(intent);
- InApp Message
Para a implementação do formato InApp, adicione o seguinte código a sua application.
MDMInApp.start(getApplicationContext());
Integração com o Firebase
Para enviarmos notificações push pelo serviço do Firebase, precisamos de um arquivo chamado Service Account Key. Para obter esse arquivo, você deve seguir os seguintes passos:
OBS: Ao acessar os links abaixo, certifique-se que o projeto selecionado na parte de cima da página é o mesmo projeto do seu app no Firebase.
1. Criar um Role específico para envio de Push Notification
Acesse o seguinte endereço: https://console.developers.google.com/iam-admin/roles
Inicie a criação de um Role e nomeie como “Hands MDM”.
Adicione as seguintes permissões:
cloudmessaging.messages.create
Permissão para enviar notificações e mensagens de dados por meio da API FCM HTTP e do AdminSDK
resourcemanager.projects.get
resourcemanager.projects.getIamPolicy
Permissão para recuperar informações do projeto do Firebase
Salve para finalizar o processo.
2. Criar um Service Account com o Role previamente criado
Acesse o seguinte endereço: https://console.cloud.google.com/iam-admin/serviceaccounts
Inicie a criação de um Service Account e nomeie como “Hands MDM”.
Avance para o próximo passo e atribua o Role criado anteriormente.
Pule o último passo e salve para finalizar o processo.
3. Incluir uma Key no Service Account e obter o arquivo
Após salvar, você verá uma listagem de todos os Service Accounts. Selecione o Service Account criado com o nome de “Hands MDM” para editar.
Adicionar nova chave no formato JSON.
Ao adicionar a chave, um arquivo será baixado automaticamente.
Opt-out
Para fazer o opt-out do módulo, basta chamar o seguinte comando:
MDMNotification.setOptOut(getApplicationContext(), true);
Para desfazer o opt-out do módulo, basta chamar o seguinte comando:
MDMNotification.setOptOut(getApplicationContext(), false);