2014-10-06 2 views
5

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

Проблема заключается в том:

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

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

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

ответ

0

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

+1

К сожалению, это не работает. Эти функции не вызываются в этом конкретном случае (с расширениями). –

1

См

NSExtensionContext.h 

IOS 8,2 добавлен ряд уведомлений использовать для расширений:

NSExtensionHostDidBecomeActiveNotification 
NSExtensionHostDidEnterBackgroundNotification 
NSExtensionHostWillEnterForegroundNotification 
NSExtensionHostWillResignActiveNotification 
+0

И решение для iOS 8.0? –

+0

Нет, что мы исследовали. Мы решили настроить таргетинг на 8.2 + и оставить это на этом. –