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时,注意每一个属性的类型,如下图:

iOS 8 Share Extension需要注意的点_第1张图片
Extension03.png

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

iOS 8 Share Extension需要注意的点_第2张图片
Extension04.png

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

iOS 8 Share Extension需要注意的点_第3张图片
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


iOS 8 Share Extension需要注意的点_第4张图片
Extension06.png

你可能感兴趣的:(iOS 8 Share Extension需要注意的点)