ApplicationDidBecomeActive не вызывается при запуске приложения из баннера/пользовательского действия
Я столкнулся с этой странной проблемой, пытаясь внедрить новые интерактивные уведомления iOS-8. При работе с локальными уведомлениями все работает так, как ожидалось, но когда дело доходит до APNS - все не так хорошо работает.
В деталях: я получаю пользовательский push, как это должно быть через баннер (я регистрируюсь только до минимального контекста), но когда пользователь вводит кнопку, представляющую настраиваемое действие, мой делегат приложения applicationDidBecomeActive:
не вызывается; Фактически - приложение застревает в неактивном режиме.
Странно, что приложение переходит в активный режим при запуске с экрана Уведомления (справа от Сегодня).
Кроме того, в обоих случаях мой делегат:
handleActionWithIdentifier:forRemoteNotification:completionHandler:
вызывается с правильным идентификатором.
Любая помощь будет очень оценена!
Ответы
Ответ 1
Похоже, это ошибка iOS 8. В документе журнала изменений iOS в Urban Airship найдено следующее:
Примечания iOS 8 (Обновлено 25 сентября 2014 года)
Известные проблемы с iOS 8.0.0, которые могут повлиять на ваше приложение: - Приложения не вводят "активное" состояние при запуске из интерактивного уведомления, а последующие сеансы приложения не получают приложение: didBecomeActive вызов делегата или
Уведомление UIApplicationDidBecomeActiveNotification. Приложение государство никогда не переходит из "неактивного" (радар # 18179525). Эта будет влиять на точность отчетности для приложений, используя интерактивные уведомления.
http://docs.urbanairship.com/reference/libraries/ios/latest/ios_changelog.txt
Я не нашел никаких указаний на то, что это было исправлено в последних версиях iOS 8, включая 8.1 и 8.2-бета, и никаких обходных путей для решения проблемы.