Подтвердить что ты не робот

Надежность APNS (Apple Push Notification Service)

Наше приложение использует APNS для получения Push-уведомлений. Однако наш клиент утверждает, что некоторые из их устройств не получали уведомления и утверждают, что они должны "убедиться, что уведомления будут доставлены на 100%. Но я прочитал где-то, что APNS не на 100% надежна и должны быть случаи, когда уведомления не доставляются.

В настоящее время я испытываю панику от того, как мы можем гарантировать, что APNS будет получен в любое время. Я прочитал, что случай, который может быть недоступен APNS (устройство может отключиться). Но наш тест показывает, что даже устройство находится в сети (Wi-Fi или 3G), иногда APNS не были доставлены.

Есть ли какой-либо конкретный случай, который APNS не будет доставлен? Или есть ли что-нибудь, что мы (разработчики) можем делать с кодами, чтобы получать все уведомления? То, что я сделал в коде, - это просто зарегистрировать приложение для удаленного уведомления и написать didRegisterForRemoteNotificationsWithDeviceToken, а затем выбросить токен устройства на наш сервер.

Любая помощь будет оценена, поскольку наш клиент почти убивает нас, если ВСЕ их устройства не получают APNS!

4b9b3361

Ответ 1

  • APNS основана на Apple Servers, и Apple не дает никаких гарантий по успешной доставке сообщений.
  • Если приложение открыто (то есть пользователь использует приложение) во время получения уведомления, iOS не показывает сообщение уведомления, вам необходимо обработать его.
  • Уведомление появляется только в том случае, если приложение зашифровано или убито.
  • Также используйте службу обратной связи на стороне сервера; поможет вам избавиться от старых нежелательных токенов (пользователей, удаливших приложение или отключенных уведомлений через настройки).
  • Не отправляйте слишком много уведомлений на устройство за короткий промежуток времени, поскольку APNS кэширует только 1 сообщение/устройство (если устройство находится в автономном режиме). Таким образом, он может доставлять сообщение, когда устройство подключается к сети. Не уверен, сколько времени кэшируется сообщение.

Или просто реализовать Pusher... http://pusher.com

Ответ 2

Мы сталкиваемся с той же проблемой. Как сказали все, APNS - это лучший сервис, поэтому вы не можете быть уверены в том, что каждое уведомление будет доставлено, но вы можете быть уверены в том, какие из них были получены. Это то, что мы собираемся сделать. Мы регистрируем в нашем бэкэнд каждое почтовое отправление уведомлений, и мобильное приложение сообщает о каждом уведомлении, которое оно получает. Затем мы устанавливаем максимальное время ожидания получения уведомления, если мы не получим отчет обратно, мы попробуем еще раз.

Я надеюсь, что это может быть полезно кому-то (даже через 2 года)

Ответ 3

В Apple Docs четко сказано, что он не является 100% гарантированным и не должен использоваться как таковой. Его отправили с "лучшими усилиями".