Обмен сообщениями Firebase не работает для сообщений «данные» в iOS

#ios #firebase #firebase-cloud-messaging #firebase-notifications

#iOS #firebase #firebase-cloud-обмен сообщениями #firebase-уведомления

Вопрос:

У меня есть приложение, работающее на iOS 9.3.5. Мне нужно иметь возможность отправлять push-уведомления в мое приложение, когда оно находится на переднем плане или в фоновом режиме. На самом деле мне не нужно включать какие-либо данные, мне просто нужно пинговать приложение, чтобы оно «звонило домой«. Поэтому мне не нужно / не хочу, чтобы пользователь видел какие-либо уведомления.

Поскольку компания уже использует Firebase для своего приложения для Android, я настроил это в приложении для iOS. Если я отправлю сообщение https://fcm.googleapis.com/fcm/send с notification ключом в полезной нагрузке, оно будет получено на iPhone. Когда я пытаюсь сделать это с data помощью ключа, я ничего не получаю. В обоих случаях я получаю success ответ от POST. Я реализовал следующие обратные вызовы:

 application:didReceiveRemoteNotification:
userNotificationCenter:willPresentNotification:withCompletionHandler:
applicationReceivedRemoteMessage:(FIRMessagingRemoteMessage *)remoteMessage
  

Ни одно из них не вызывается при отправке сообщения с data ключом.

Редактировать: это полезная нагрузка, которую я использую.

{ «data»: { «message»: «phonehome», }, «кому»: «xxxxx» }

После выполнения еще нескольких тестов похоже, что я получаю это сообщение, когда приложение находится на переднем плане, но не на заднем плане. Когда я переключаюсь на передний application:didReceiveRemoteNotification: план, вызывается вызов.

Редактировать 2: добавлено content_available , и это сделало свое дело. Спасибо!

{ «кому»: «xxxx», «content_available»: true }

Комментарии:

1. Думаю, мое предложение сработало. Я удалил свой комментарий, немного изменил его и добавил в качестве ответа.

Ответ №1:

Однако это немного сложно предложить без образца полезной нагрузки, попробуйте использовать priority параметр as high или content_available to true .