Уведомления не отображаются на iOS (отправляются с Firebase), пока приложение работает в фоновом режиме.

У меня есть клиентское приложение iOS (Nativescript), которое должно получать push-уведомления, отправленные Firebase. На самом деле он получает данные, когда приложение находится в интерфейсе, но, как указано в документации, iOS должна обнаруживать входящее уведомление (когда приложение находится в фоновом режиме) и отображать уведомление.

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

Я отправляю уведомление с помощью консоли Firebase. Здесь просто ничего не происходит с моим iPhone, ни звука, ни значка, ничего! Хотя Firebase утверждает, что все работает нормально ...?!

Кто-нибудь может мне помочь?


Хорошо, думаю, я не был очень конкретным, поэтому позвольте мне добавить код ниже.

Я отправляю этот код в Firebase (https://fcm.googleapis.com/fcm/send) для запуска push-уведомления:

Content-Type:application/json
Authorization:key=[MY_KEY_HERE]

{
  "to" : "[FIREBASE_DEVICE_ID_HERE]",
  "priority": "high",
  "notification" : {
    "body" : "Howto write a great body?",
    "title" : "Some title...",
    "sound" : "default"
  }
}

Как видите, это сообщение уведомление, а не сообщение данных, поэтому оно должно вызывать всплывающее окно, значок, звук или что-то еще на iOS ... верно?

Как я упоминал ранее, я могу получать эти данные json, но только если мое приложение находится на переднем плане ... Итак, Firebase-device-id абсолютно правильный, а также является ключом авторизации.

Что еще мне попробовать?


person Vincent    schedule 08.12.2016    source источник
comment
Хотя это вопрос, на самом деле он не соответствует рекомендациям по заданию вопроса здесь, в stackoverflow. Просмотрите Как создать минимальный, полный и проверяемый пример. Лучше всего опубликовать код, который дает сбой, поскольку проблема может заключаться в опечатке, проблеме конфигурации или чем-то, что было полностью упущено из виду. Этот код поможет нам, поможет вам получить точный ответ.   -  person Jay    schedule 08.12.2016
comment
Вы абсолютно правы, поэтому я уточнил немного больше ...   -  person Vincent    schedule 08.12.2016


Ответы (2)


Сообщения с данными FCM не отображаются, пока приложение работает в фоновом режиме:

On iOS, FCM stores the message and delivers it only when the app is in the foreground and has established a FCM connection.

Источник здесь: Документация FCM

Убедитесь, что вы получили уведомление, а не сообщение с данными.

person CZ54    schedule 08.12.2016
comment
Это определенно уведомление, а не сообщение с данными, см. Пример кода выше ... - person Vincent; 08.12.2016

Возможно, вы отключаетесь от Firebase с помощью такой команды

[[FIRMessaging messaging] disconnect];

Не могли бы вы сказать, можете ли вы отправлять сообщения через APNS со своего компьютера (без Firebase)? Пример файла для отправки такого сообщения можно найти где-нибудь в этом руководстве https://www.raywenderlich.com/123862/push-notifications-tutorial.

person Adamsor    schedule 08.12.2016
comment
Я отправляю / запускаю также с помощью Postman (расширение Chrome), которое может отправлять необработанные данные. Это дает мне тот же результат ... См. Пример кода выше ... - person Vincent; 08.12.2016