iOS 8 Share Extension需要注意的点

Share Extension 是 iOS 8 开发的,准确的说 Share Extension 只是一个寄存在 App 上的插件。通过沙盒实现Extension 和 App 之间的数据同步

1、 数据同步有三种方式

1、NSUserDefault // 比较适用于较小数组的存储,当数据大于20MB时,会造成界面卡顿,同步数据会有一定的延迟

代码:

// 注意这里的SHARE_APPGROUP为证书里设置的App Group
NSUserDefaults *defaults = [[NSUserDefaults alloc] initWithSuiteName:SHARE_APPGROUPS];    [defaults setValue:value forKey:key];

2、NSFileManager // NSFileManager 和 Core Data 可按个人习惯使用

代码:

[NSFileManger defaultManager] containerURLForSecurityApplicationGroupIdentifier:

3、CoreData

2、自定义界面,iOS系统提供了源生的系统界面,但是界面比较不美观,如果想自定义界面的话,只需在plist文件里面修改NSExtensionPrincipalClasss属性为自定义的类名即可,如下图


Extension01.png

同时注意界面之间的跳转方式为:

Extension02.png

3、遇到的问题
1.在设置Share Extension 的NSExtensionActivationRule时,注意每一个属性的类型,如下图:

Extension03.png

2.在 Apple 官网上配置 App Groups 时的ID即为 Share Extension 与 App 之间同步数据的key

Extension04.png

同时该key也需要在App targets --- Capabilities --- App Groups设置,如下图:

Extension05.png

3.倘若 App Share Extension 的名字为 ShareTarget, App 的 Bundle Identifier 为com.company.mobile, 那么 Share Extension 的 Bundle Identifier 就应该是: com.company.mobile.Share, 那么问题来了,缺少 Share 的描 Provisioning Profile,所以,应该在 Apple Deleloper上创建一个对应 Share 的 Provisioning Profile


Extension06.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容