如何检测应用程序扩展在iOS 8上的应用程序启用?

我正在开发iOS 8testing版的自定义键盘,如果我的自定义键盘没有启用,我想告诉用户如何启用它在包含应用程序,有没有什么办法来检测应用程序扩展启用?

1)首先让我们设置一些常数,以便于彼此理解:

  • 包含app =安装扩展名并保存扩展二进制和目标的应用程序
  • 主机应用程序=扩展在内部运行的应用程序(另一方)
  • 扩展=任何iOS8的新组件/模块,我们现在可以构build到系统范围内使用:自定义键盘,当今窗口小部件,照片编辑效果,等等。

2)苹果公司还发布了一个更安静的API,称为App Groups API。这个API允许开发人员将n个扩展名分组在一个bundle标识符下,并在应用程序与其中包含的扩展之间build立一条通信线。

3)您可以使用NUserDefaults在扩展和包含应用程序之间共享数据,但使用这种新方法:

[[NSUserDefaults alloc] initWithSuiteName:@"<app group identifier>"]; 

读/写…和同步:

 [myDefaultsObj synchronize]; 

4)现在到底线:

使用应用程序组的urlscheme来testing你想要的:

https://developer.apple.com/library/prerelease/ios/documentation/Foundation/Reference/NSExtensionContext_Class/#//apple_ref/occ/instm/NSExtensionContext/openURL:completionHandler&#xFF1A;

 - (void)openURL:(NSURL *)URL completionHandler:(void (^)(BOOL success))completionHandler 
  • url – 要打开的url。
  • completionHandler – URL打开时调用的块。
  • 此参数 – 成功 – 是一个布尔值,指示打开是否成功。

祝你好运!!!