onMessageПолучено не вызывается на Android - PullRequest
0 голосов
/ 12 сентября 2018

Обратите внимание, что в клиентском коде НЕТ основных проблем, таких как регистрация службы или проблема с выдачей токена.

Я использую API REST FCM для отправки сообщений с моего сервера приложений.Требуется показать диалоговое окно, когда приходят push-сообщения и приложение находится на переднем плане или если приложение находится в фоновом режиме, просто отображать уведомление.

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

Из документации онозвучит как сообщение с обоими типами полезных нагрузок, все еще должно работать - FireBase Android doc .

Подводя итог, это работает -

{  
   "to":"verylongtoken",
   "token":"verylongtoken",
   "notification":{  
      "title":"title",
      "body":"body"
   },
   "priority":"high"
}

Но это не так -

{  
   "to":"verylongtoken",
   "token":"verylongtoken",
   "notification":{  
      "title":"title",
      "body":"body"
   },
   "data":{  
      "message_type":"1"
   },
   "priority":"high"
}

Звучит действительно глупо, но чего мне не хватает?

1 Ответ

0 голосов
/ 12 сентября 2018

С официального сайта FCM: https://firebase.google.com/docs/cloud-messaging/concept-options

Если вы хотите установить приоритет сообщения, измените формат json с

{  
   "to":"verylongtoken",
   "token":"verylongtoken",
   "notification":{  
      "title":"title",
      "body":"body"
   },
   "data":{  
      "message_type":"1"
   },
   "priority":"high"
}

на

{  
   "to":"verylongtoken",
   "token":"verylongtoken",
   "notification":{  
      "title":"title",
      "body":"body"
   },
   "data":{  
      "message_type":"1"
   },
   "android":{
      "priority":"high"
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...