如何检测 iOS 8 上的包含应用程序是否启用了应用程序扩展?

2024-05-14

我正在 iOS 8 beta 上开发一个自定义键盘,我想告诉用户如果我的自定义键盘未启用,如何在包含应用程序中启用它,有什么方法可以检测应用程序扩展是否已启用?


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

    • 包含应用程序=安装扩展并保存扩展二进制文件和目标的应用程序
    • 主机应用程序 = 扩展程序在其中运行的应用程序(另一方)
    • 扩展 = iOS8 的任何新组件/模块,我们现在可以将其构建到系统范围内使用:自定义键盘、今日小部件、照片编辑效果等等。
  2. 苹果还发布了一个更安静的 API,称为 App Groups API 此 API 允许开发人员将 n 个扩展分组到 1 个捆绑包标识符下,并在应用程序和其中包含的扩展之间创建通信线路。

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

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

    读/写...并同步:

    [myDefaultsObj synchronize];
    
  4. 现在到最后一行:

    使用应用程序组的 url 方案来测试您想要的内容:

    https://developer.apple.com/library/prerelease/ios/documentation/Foundation/Reference/NSExtensionContext_Class/#//apple_ref/occ/instm/NSExtensionContext/openURL:completionHandler 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
    
    • URL - 要打开的 URL。
    • completionHandler - 打开 URL 时调用的块。
    • 这个参数——success——是一个布尔值,表示打开是否成功。

祝你好运!!!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何检测 iOS 8 上的包含应用程序是否启用了应用程序扩展? 的相关文章

随机推荐