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);
}