在iOS 8中包含应用程序时如何启用应用程序扩展?

时间:2014-06-25 09:29:05

标签: ios iphone ios8 ios-app-extension

我正在iOS 8测试版上开发一个自定义键盘,我想告诉用户如果我的自定义键盘没有启用,如何在包含app中启用它,有没有办法检测到应用程序扩展已启用?< / p>

1 个答案:

答案 0 :(得分:-2)

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

  • 包含app =安装扩展程序并保留扩展名二进制文件和目标
  • 的应用程序
  • host app =扩展程序在其中运行的应用程序(对方)
  • extension =我们现在可以在系统范围内使用的任何iOS8新组件/模块:自定义键盘,今日小部件,照片编辑效果等等。

2)Apple还发布了一个名为App Groups API的更安静的API 此API允许开发人员在1个包标识符下对n个扩展进行分组,并在应用程序及其中包含的扩展名之间创建通信线路。

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

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

读/写...和同步:

[myDefaultsObj synchronize];

4)现在到底线:

使用应用程序组的网址方案来测试您的需求:

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

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