程序之间数据的共享,UIActivityViewController类让你的程序进入AirDrop列表

来源:互联网 发布:开淘宝保证金怎么解冻 编辑:程序博客网 时间:2024/05/19 06:15


由于iOS采用的沙盒机制,在安全方面加了砝码,可在我们开发中带来很大的麻烦。程序之间的的文件不能共享。

今天拿到一个很奇葩的问题,要上传本地的本地文件,这需求在安卓上是很容易实现的,直接列出文件点击上传就ok,可iOS没办法文件预览。

在百度上爬了半天才找到解决方法,借助UIActivityViewController这个类去完成。

UIActivityViewController这是系统提供的一个 AirDrop 类似分享的东西,这个界面估计很多人都看到过。




这里可以直接把分享的文件调到你的程序,起原理是,把要分享的文件的在本机的url地址给你的程序,你拿到url地址就能操作了。


实现步骤:


第一步你得在你的程序的info.plist里去配置参数




<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"><plist version="1.0"><array><dict><key>CFBundleTypeName</key><string>DOC Document</string><key>LSItemContentTypes</key><array><string>com.microsoft.word.doc</string></array><key>CFBundleTypeRole</key><string>Editor</string><key>LSHandlerRank</key><string>Owner</string></dict><dict><key>CFBundleTypeName</key><string>PDF Document</string><key>LSItemContentTypes</key><array><string>com.adobe.pdf</string></array><key>CFBundleTypeRole</key><string>Viewer</string><key>LSHandlerRank</key><string>Alternate</string></dict></array></plist>



这里是在什么类型的文档分享有你的程序,我是只配置了pdf文件和word文件分享时可以调用我的程序。


这样你只要手机安装了你的程序,打开你配置的文档就可以看到有你程序的身影了。


现在问题来了,来你的程序我这边怎么接收呢?


我们在app delegate这个代理文件里,去实现这个方法:

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url options:(nonnull NSDictionary<NSString *,id> *)options{       return YES;}

这样程序过来就能拿到url了,你可以打印下url就会发现他是在你手机的地址。



参考文档:http://www.jianshu.com/p/88a08d66894f



0 0
原创粉丝点击