Приложение iOS не получает фоновые push-уведомления от Firebase - PullRequest
0 голосов
/ 16 ноября 2018

Я пытаюсь заставить работать push-уведомления в приложении Cordova, над которым я работаю. Они отлично работают в приложении Android и отлично работают в приложении iOS, когда оно находится на переднем плане, но я не получаю никаких уведомлений, когда приложение находится в фоновом режиме или завершает работу.

У меня включены функции «Push-уведомления» и «Фоновые режимы - Удаленные уведомления»:

xcode capabilities

И я на 100% уверен, что на сервере есть токен устройства (так как push-уведомления работают на переднем плане, и я вижу его в базе данных).

Вот так я отправляю push-уведомление, используя модуль узла firebase-admin :

await firebase.messaging().send({
  token: userDeviceToken,
  data: {foo: 'bar'},
  notification: {
    title: 'This is a notification title',
    body: 'This is a notification body',
  },
});

Чего мне не хватает?

EDIT:

Если я запускаю приложение или выводю его на передний план после того, как оно должно было получить уведомление, оно действует так, как будто оно получило уведомление в приложении. Это происходит, даже если я подожду несколько минут после отправки уведомления, прежде чем запускать приложение.

Ответы [ 2 ]

0 голосов
/ 20 ноября 2018

Проверьте структуру полезной нагрузки, которую вы получили в приложении на переднем плане.Обычно это отличается от Android.Структура полезной нагрузки iOS должна быть:

{
   "aps" : {
     "alert" : {
       "body" : "great match!",
       "title" : "Portugal vs. Denmark",
     },
     "badge" : 1,
   },
   "Custom_Data" : "Game level name"
 }
0 голосов
/ 16 ноября 2018

Вы не можете получать удаленные уведомления, когда приложение закрывается. Вы можете захотеть показать локальное уведомление, сообщающее пользователю, что он больше не может получать уведомления, когда приложение закрыто.

...