2014-10-06 91 views
5

我有一個爲iOS8實施的共享擴展。該服務使用OAuth進行身份驗證。我用於擴展的登錄信息與容器應用共享。iOS擴展 - 檢測「擴展狀態更改」(後臺/前臺)

的問題是:

當我在擴展,那麼應用程序切換到容器應用程序,並註銷,然後應用程序切換回包含延長主機的應用程序 - 如何檢測的擴展有剛剛重新出現?該擴展程序依賴於容器應用程序和擴展程序之間的共享數據庫中存在的某些信息,但是,應用程序註銷時會刪除該數據。

我嘗試註冊各種「應用程序通知」,如UIApplicationDidBecomeActiveNotification。但是,正如預期的那樣,這些不需要擴展。

如何檢測擴展的狀態何時發生變化,以便我的擴展在重新出現時更加健壯?

回答

0

每次重新輸入擴展名時,應該調用主視圖控制器類的viewDidAppear:animated:方法。當你即將離開時,應調用viewWillDisappear:animated:

+1

可惜,這是行不通的。這些函數在這種情況下不會被調用(帶擴展名)。 – 2014-10-24 19:02:54

1

NSExtensionContext.h 

的iOS 8.2增加了一個數量的通知,以用於擴展:

NSExtensionHostDidBecomeActiveNotification 
NSExtensionHostDidEnterBackgroundNotification 
NSExtensionHostWillEnterForegroundNotification 
NSExtensionHostWillResignActiveNotification 
+0

和iOS 8.0的解決方案? – 2016-07-08 12:23:19

+0

我們沒有調查過。我們已經決定瞄準8.2+,並將其留在那裏。 – 2016-07-09 18:15:01