2017-02-12 18 views
0

Мне не удалось найти что-либо по этой теме в документации, поэтому я подумал, что так и будет.Swift Firebase Cloud Messaging - отправка восходящих сообщений в фоновом режиме

Документация FCM гласит:

Когда ваше приложение переходит в фоновом режиме, отключения от ТСМ.

Но нет, где говорится, почему.

Что я хочу сделать, это отправить сообщение с восходящего потока FCM с устройства, когда пользователь взаимодействует с push-уведомлением (может быть локальным или удаленным).

Поэтому у меня есть два вопроса:

  1. Почему Firebase рекомендуем отключаем от ТСМ, когда приложение отправляется на задний план?
  2. Могу ли я отправить восходящее сообщение, когда приложение будет убито, приостановлено или в фоновом режиме?

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

Спасибо!

ответ

0

Поскольку я не смог найти ответ в Интернете, я решил реализовать свой прецедент и наблюдать за поведением. Я нашел несколько вещей:

  • Вы не можете полагаться на выполнение фона в iOS, например, поддерживать соединение FCM. Система может и будет убивать ваше приложение в состояниях с низкой памятью.
  • Попытка подключения к FCM в фоновом режиме не будет работать. Любые сообщения, отправленные в фоновом режиме, будут помещены в очередь, когда приложение будет открыто.
  • Даже если ваш фоновый код гарантированно работает, например, во время действия уведомления, FCM не может подключиться.

Учитывая мои выводы, ответы на мои вопросы:

  1. Потому что вы не можете рассчитывать на исполнение на фоне прошивкой (см первый пункт выше).
  2. Нет, сообщения помещаются в очередь, когда приложение будет открыто, и будет выполнено действительное соединение FCM.