Получить все уведомления, когда устройство подключиться к Интернету в IOS - PullRequest
0 голосов
/ 30 мая 2018

Я разработал одно приложение для чата iOS в target-c, в котором когда пользователь A отправляет сообщение пользователю B, пользователь UserB получает push-уведомление.Когда пользователь B получает push-уведомление, он вызывает один URL-адрес моего бэкэнда, чтобы узнать UserA, что ваше сообщение доставлено пользователю UserB (когда приложение не запущено или не уничтожено).Все это работает нормально, наоборот.

Но моя проблема в том, что когда UserA отправляет более 5-10 сообщений пользователю B, а пользователь B не подключен к Интернету (мой сервер также отправляет успешное сообщение пользователю B - черезFCM).После того, как пользователь B подключается к Интернету, он получает только самое последнее уведомление.

Это потому, что Apple поддерживает QoS.Я прочитал эту статью.

Поэтому, чтобы решить эту проблему, я попытался добавить параметр apns-collapse-id при отправке запроса на отправку push-уведомления через fcm.Но это объединяет только максимум 4 уведомления одновременно.Также этот сценарий не работает все время.Иногда получаю только 1 сообщение, а не все.

Короче говоря, я хочу отображать все уведомления о сообщениях так же, как Whatsapp отображать все уведомления при подключении к Интернету.

Пожалуйста, сообщите мне, что делать сейчас, чтобырешить эту проблему.Заранее спасибо.

1 Ответ

0 голосов
/ 05 июня 2018

В этом случае вы можете сделать следующее:

  1. Удалить все ожидающие уведомления из APNS.

[[UNUserNotificationCenter currentNotificationCenter] removeAllPendingNotificationRequests];

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