2014-10-06 22 views
5

Mam rozszerzenie udziału wdrożone dla iOS8. Usługa korzysta z protokołu OAuth do uwierzytelniania. Informacje logowania, których używam dla rozszerzenia, są udostępniane aplikacji kontenerowej.Rozszerzenie iOS - wykrywanie "zmian stanu rozszerzenia" (tło/pierwszy plan)

Problemem jest:

Kiedy jestem w rozszerzeniu, a następnie aplikacja przełącznik do aplikacji kontenera i wylogowania, a następnie aplikacji wrócić do aplikacji hosta zawierającego rozszerzenie - W jaki sposób wykryć, że rozszerzenie ma właśnie się pojawił? Rozszerzenie polega na tym, że pewne informacje mają się znajdować we współdzielonej bazie danych między aplikacją kontenera a rozszerzeniem, jednak dane są usuwane po wylogowaniu się z aplikacji.

Próbowałem zarejestrować się w różnych "powiadomieniach aplikacji", takich jak UIApplicationDidBecomeActiveNotification. Jednak zgodnie z oczekiwaniami nie są one wymagane w przypadku rozszerzeń.

Jak mogę wykryć, kiedy stan rozszerzenia się zmienia, tak, że mogę uczynić moje rozszerzenie bardziej niezawodnym, gdy pojawi się ponownie?

Odpowiedz

0

Metoda viewDidAppear:animated: głównej kontrolera widoku powinna być wywoływana za każdym razem, gdy ponownie wprowadzasz rozszerzenie. Kiedy masz zamiar wyjść, należy zadzwonić pod numer viewWillDisappear:animated:.

+1

Niestety to nie działa. Funkcje te nie są wywoływane w tym konkretnym przypadku (z rozszerzeniami). –

1

Zobacz

NSExtensionContext.h 

iOS 8.2 dodaje się liczbę powiadomień używać rozszerzeń:

NSExtensionHostDidBecomeActiveNotification 
NSExtensionHostDidEnterBackgroundNotification 
NSExtensionHostWillEnterForegroundNotification 
NSExtensionHostWillResignActiveNotification 
+0

I rozwiązanie dla iOS 8.0? –

+0

Żadne, które zbadaliśmy. Zdecydowaliśmy się docelowo na 8,2+ i zostawić to. –