Мое приложение выполняет тихое извлечение фона через push-уведомления. Все работает нормально, а push-уведомления, отправленные с нашего сервера, запускают тихие фоновые выборки, как ожидалось, когда пользователь открыл приложение за последние 60 минут, или уведомление о push было отправлено в течение 60 минут - даже если устройство заблокировано.
Однако, когда пользователь не открывает приложение в течение 2-3 часов или когда push-уведомление не было отправлено через 2-3 часа, приложение не получает push-уведомление. Я регистрирую активность приложения, и я подтвердил, что:
didReceiveRemoteNotification:fetchCompletionHandler:
не вызывается в делегате приложения.
Несколько фактов:
- В приложении plist.info я установил UIRequiresPersistentWiFi в true и UIBackgroundModes (только) удаленному уведомлению
- Полезная нагрузка push-уведомления содержит только доступный для содержимого ключ
- Через 2-3 часа бездействия (ни с помощью push-уведомления, ни с пользовательской активности), я вижу тот же результат как на моем iPhone 5, так и на iPad с IP-телефоном Wi-Fi 2, работающем под управлением iOS 8.1.2. Другими словами, не имеет значения, является ли подключение к Интернету сотовым или Wi-Fi.
- Я не верю, что я нажимаю границы ограничения скорости, так как я отправляю не более 1-2 push-уведомлений на устройство в час.
Мое понимание заключается в том, что iOS должна продолжать пробуждать приложение в фоновом режиме и позволять ему обрабатывать извлечение фона из push-уведомления - даже после нескольких часов бездействия (пока устройство не работает и имеет интернет-соединение).
Мне интересно, если кто-то еще испытал это, и если да, если вы нашли обходной путь.
Спасибо заранее!