Кеширует ли iOS удаленные уведомления для приложений, работающих в фоновом режиме? - PullRequest
1 голос
/ 08 марта 2012

В официальном документе Apple Developer Network упоминается, что полезная нагрузка push-уведомления предоставляется приложению, когда оно работает на переднем плане или когда оно активировано из-за push-уведомления.Я не могу найти утверждение о том, что происходит, когда приложение работает в фоновом режиме.

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

  1. Включение push-уведомлений для приложения
  2. Переключение приложения в фоновый режим
  3. Отправка двух мгновенных сообщений клиенту.Клиент получает два push-уведомления, и значок на значке приложения становится 2
  4. Завершить работу сотовой сети, чтобы приложение не связывалось с сервером
  5. Щелкните значок приложения, чтобы переключить его на передний план

После этих шагов я вижу 2 сообщения в окне чата.Поскольку приложение не может получать сообщения непосредственно с сервера, единственное объяснение состоит в том, что push-уведомления обрабатываются приложением, когда оно находится в фоновом режиме, или они где-то кэшируются и могут быть доступны приложению, когда оно переключено на передний план.Но действительно ли iOS позволяет приложению выполнять коды в фоновом режиме или кэшировать уведомления для приложений?

1 Ответ

0 голосов
/ 08 марта 2012

Приложение кэширует уведомления в течение 2-5 минут (я не знаю точно) времени.

Если вы получаете уведомление и открываете приложение через 2-5 минут

тогда в вашем приложении делегат

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

{

}

У вас будет объект уведомления, затем .. вы можете получить его, используя launchOPtions объект для ключа UIApplicationLaunchOptionsRemoteNotificationKey

Если вы не откроетеэто в течение 2-5 минут .. не будет никакого объекта уведомления,

Это основано на моем опыте .. не могу полностью поддержать этот ответ

...