Почему APNS доставляет только последнее уведомление в очереди вместо всех уведомлений в очереди? - PullRequest
1 голос
/ 03 июня 2019

Постановка проблемы : Я использую VoIP-уведомление для отображения локального уведомления. Я пытаюсь отправить уведомление от Apns на автономное устройство.Итак, он поставил в очередь все ожидающие уведомления.Но он отправляет последнее уведомление в очереди только после того, как устройство переходит в режим онлайн.

1 Ответ

2 голосов
/ 03 июня 2019

В соответствии с документацией Apple Ссылка

Качество обслуживания, хранение и пересылка и объединенные уведомления

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

Чтобы разрешить объединение аналогичных уведомлений, вы можете включить идентификатор запроса в запрос уведомления.Обычно, когда устройство подключено к сети, каждый запрос уведомления, отправляемый в APN, приводит к доставке уведомления на устройство.Однако, когда ключ apns-collapse-id присутствует в заголовке вашего запроса HTTP / 2, APN объединяет запросы, значения которых для этого ключа совпадают.Например, служба новостей, которая отправляет один и тот же заголовок дважды, может использовать одно и то же значение идентификатора свертывания для обоих запросов.APNs затем объединили бы два запроса в одно уведомление для доставки на устройство.

...