app间共享(交互)方法:
1。iOS应用程序之间可以通过“URL Scheme”交互,调用[UIApplication openURL:URL]方法,使用“Scheme://openxxx?id=1”,类似于http的请求来传递简短数据。2。应用间是可以访问其他app的Documents目录的。比如 /Users/Jiangcp/Library/Application Support/iPhone Simulator/7.0.3/Applications/应用A/Documents/ 。 在应用B里访问这个地址,是完全可以。(应用A代表系统分配的app唯一标识类似于99193050-39BA-496E-96AD-7D02C17805F0)前提是需要知道这个唯一标识。
3。app间可以通过KeyChain共享数据(keychain access group)。 Project->build setting->Code Signing Entitlements 里选定制作好的keychain access文件。
4。利用系统接口UIDocumentInteractionController,可以选择预先注册进系统的应用来访问资源。有点类似于win下的打开方式里选定哪个应用打开
下面分析下,这几种方法的各种优缺点。
1。是系统通过在底层截获openURL的地址。如果存在已经注册进系统的,能响应该scheme的app,系统会自动唤起该app到前台。没有注册该scheme的app,都以safari打开。优点:简单,无需做任何操作。缺点:能传输的数据少,且应用间交互必须先预先修改info.plist里的URL types,不灵活。
2。应该是最全面,最优的应用间共享资源的方式了。缺点:共享的资源必须放在Documents或其子目录下,且交互的时候必须提前知道应用在系统里的identify.
3。缺点:能交互的应用必须是同一个开发者账号
4。缺点:必须提前在应用的info.plist的Document types里添加相应的配置