2014-10-06 114 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