Расширение iOS - обнаружение "изменений состояния расширения" (фон / передний план)

У меня реализовано расширение для iOS8. Сервис использует OAuth для аутентификации. Информация для входа, которую я использую для расширения, предоставляется приложению-контейнеру.

Проблема в:

Когда я нахожусь в расширении, приложение переключается на приложение контейнера и выходит из системы, а затем приложение переключается обратно на приложение хоста, содержащее расширение. Как определить, что расширение только что появилось вновь? Расширение полагается на определенную информацию, которая должна присутствовать в общей базе данных между приложением-контейнером и расширением, однако эти данные удаляются при выходе из приложения.

Я попытался зарегистрироваться для различных "уведомлений приложения", таких как UIApplicationDidBecomeActiveNotification. Однако, как и ожидалось, они не требуются для расширений.

Как я могу определить, когда состояние расширения изменяется так, что я могу сделать его более надежным, когда оно появляется снова?

2 ответа

Увидеть

NSExtensionContext.h

iOS 8.2 добавила ряд уведомлений для использования в расширениях:

NSExtensionHostDidBecomeActiveNotification
NSExtensionHostDidEnterBackgroundNotification
NSExtensionHostWillEnterForegroundNotification
NSExtensionHostWillResignActiveNotification

viewDidAppear:animated: метод вашего класса контроллера основного вида должен вызываться каждый раз при повторном входе в ваше расширение. Когда вы собираетесь уйти, viewWillDisappear:animated: должен быть назван.

Другие вопросы по тегам