Как удалить одно уведомление fcm, которое приходит, когда приложение является фоновым? - PullRequest
0 голосов
/ 25 апреля 2018

Я занимаюсь разработкой приложения, в котором я получаю уведомление FCM, при этом, когда приложение открыто, onMessageRecieved() метод срабатывает, и я уведомляю сообщение на основе тега и идентификатора и удаляю уведомление на основе идентификатора и тега. Но когда приложение в фоновом режиме onMesasageRecived() не звонит. Как прикрепить уведомление с идентификатором и тегом или как удалить отдельное уведомление на основе некоторого идентификатора, когда я получаю уведомление из фона.

см. OnMessageReceived

 @Override
    public void onMessageReceived(RemoteMessage remoteMessage) {
............
     notificationManager.notify("tag", notificationId, notification);
.......
}

для удаления сообщения

  private void clearNotifications() {

        NotificationManager nMgr = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);

        nMgr.cancel("tag",notificationId);
    }

это работает но когда приложение закрыто, код не работает. можем ли мы уведомить или прикрепить тег и идентификатор из полезной нагрузки на сервере

1 Ответ

0 голосов
/ 25 апреля 2018

Если вы посмотрите документы и здесь , вы увидите, что если у вас есть полезная нагрузка notification, ваше уведомление будет доставлено в системный трей непосредственно, когда ваше приложениена заднем плане нет возможности перехватить это.То же самое произойдет, если у вас есть полезная нагрузка уведомления с дополнительной полезной нагрузкой данных, уведомление будет отправлено прямо в трей, а полезная нагрузка данных будет доставлена ​​до цели действия средства запуска.

{
  "message":{
    "token":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
    "notification":{
      "title":"Portugal vs. Denmark",
      "body":"great match!"
    }
  }
}

Когда выПроверяя идентификатор / тег в методе onMessageReceive, вы можете гарантировать, что он всегда будет вызывать метод onMessageReceived, чтобы удалить полезную нагрузку уведомления из вашего уведомления и добавить только полезную нагрузку данных.Все полезные данные data доставляются по методу onMessageReceived.

  "message":{
    "token":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
    "data":{
      "Nick" : "Mario",
      "body" : "great match!",
      "Room" : "PortugalVSDenmark"
    }
  }
}
...