Push Messaging Service
Integrando em seu próprio Push Messaging Service
Se você estiver utilizando seu próprio Push Messaging Service para lidar com o serviço de mensagens push do Firebase, em vez de implementar o serviço da Inngage no seu AndroidManifest.xml, basta implementar os seguintes métodos em sua classe.
InngageMessagingService.sendData()
Dentro do método onMessageReceived
, adicione o nosso método para que os dados da mensagem recebida (mensagens push e In App) possam ser tratados em nossa SDK. Por exemplo, isso inclui o envio dos dados para realizar a atualização do status da mensagem na plataforma Inngage.
public void onMessageReceived(@NonNull RemoteMessage remoteMessage) {
super.onMessageReceived(remoteMessage);
if (remoteMessage.getData().size() > 0) {
Intent intent = new Intent();
Map<String, String> remoteMessageData = remoteMessage.getData();
JSONObject remoteMessageJson = new JSONObject(remoteMessageData);
InngageMessagingService.sendData(
getApplicationContext(),
intent,
remoteMessageJson);
}
}
No exemplo acima, estamos convertendo os dados recebidos pelo remoteMessage
em um JSONObject e, em seguida, passando-os como parâmetro no método InngageMessagingService.sendData()
.
Dessa forma, todo o tratamento de exibição da notificação fica a cargo dos desenvolvedores, assim como o tratamento de deeplinks, visualização de rich contents, etc. Se preferir que a SDK cuide disso, basta utilizar nosso serviço
PushMessagingService
adicionando-o ao seu AndroidManifest.xml. Você pode seguir o passo a passo neste link.
Adicionando o Rich Content em sua notificação
No seu método de exibição de notificações, você pode incorporar os seguintes trechos de código para garantir que suas notificações incluam imagens (conteúdo rico) fornecidas pela plataforma:
try{
Bitmap image = new InngageUtils().getBitmapfromUrl((String) jsonObject.get("picture"));
if (image != null) {
builder.setLargeIcon(image);
builder.setStyle(
new NotificationCompat.BigPictureStyle()
.bigPicture(image)
.setSummaryText((CharSequence) jsonObject.get("body")));
}
} catch (JSONException e){
Log.e("NotificationError", "Erro ao tentar obter e configurar a imagem para a notificação: " + e);
}
Updated 8 months ago