3

У меня возникли проблемы с выяснением того, как работает FCM, когда я отправляю уведомление на устройство iOS, находящееся в автономном режиме (например, в режиме самолёта или выключенное).Поведение FCM в автономном режиме для iOS

В документации по объекту time_to_live упоминается, что Currently, time_to_live is not supported for notification messages on iOS., но не содержит пояснений о том, что сделано. Я пробовал тестировать его, и кажется, что иногда происходит уведомление push, а иногда и нет, независимо от того, что я установил для свойства time_to_live, хотя я не уверен, что это из-за дросселирования или чего-то еще, что происходит на стороны FCM.

Похоже, что я не могу получить свойство delay_while_idle для работы с iOS, хотя в документации явно не указано, что он недоступен для iOS - уведомления, которые отправляются, когда телефон спит, все еще разбудит телефон , даже если я установил delay_while_idle, чтобы быть правдой.

У кого-нибудь есть представление о том, как это должно работать?

ответ

4

time_to_live AFAIK применим как к Android, так и к iOS. Однако, так как процесс отправки сообщения на IOS устройств для FCM выглядит следующим образом:

App Сервер> FCM Сервер> APNs> IOS устройство

Это с уверенностью сказать, что только ТСМ сервера использует time_to_live, согласно его description:

Этот параметр определяет, сколько времени (в секундах) сообщение должно храниться в хранилище ТСМ, если устройство отсутствует. Максимальное время поддержки - 4 недели, а значение по умолчанию - 4 недели. Для получения дополнительной информации см. Setting the lifespan of a message.

Оглядевшись, поведение для APN, при отправке на офлайновые устройства (от Apple docs):

Apple, сервис Push уведомления включает в себя качество компонента Service (QoS), который выполняет магазин-и -forward функция. Если APN пытается доставить уведомление, а целевое устройство отключено, APN сохраняет уведомление в течение ограниченного периода времени и доставляет его, когда устройство снова становится доступным. Этот компонент хранит только самое последнее уведомление для каждого устройства и каждого приложения. Если устройство находится в автономном режиме, отправка запроса уведомления, направленного на это устройство, приводит к отбрасыванию предыдущего запроса. Если устройство остается в автономном режиме в течение длительного времени, все его сохраненные уведомления в APN отбрасываются.

В настоящее время delay_while_idle в настоящее время не рекомендуется.

Способ, которым я знаю, что вы могли бы сделать до wake up iOS-телефон (онлайн/подключен к приличной сети) - это просто set the priority to high.

Смежные вопросы