程序之间数据的共享,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
- 程序之间数据的共享,UIActivityViewController类让你的程序进入AirDrop列表
- 一个Shift的后门程序,可以让你可以进入你不知道密码的电脑
- 让你的程序国际化
- 嵌入chrome进入你的程序
- IOS程序之间的文件共享
- IOS程序之间的文件共享
- IOS程序之间的文件共享
- SharedPreferences多个程序之间共享数据
- SharedPreferences多个程序之间共享数据
- 程序之间共享数据SharedPreferences(一)
- 程序之间共享数据SharedPreferences(二)--sharedUserId
- 让服务程序进入demon模式的代码
- Android Preference的使用总结(很全很详细)以及SharedPreferences多个程序之间共享数据
- 让你的程序支持插件
- 让你的SWT程序运行起来
- 让你的程序更加完美
- 不要让你的程序死掉
- 让你的程序会说话
- JavaEE的13种核心技术
- 深入理解Runloop(补充)
- ARM与X86 CPU架构对比区别
- androidListView分页加载总是回到头部的问题
- SQL数据库损坏,报错,原因及注意事项
- 程序之间数据的共享,UIActivityViewController类让你的程序进入AirDrop列表
- MyBatis直接执行SQL的工具SqlMapper
- ffmpeg源码分析之媒体打开过程
- android Listview,gridview局部刷新,部分刷新
- linux TCP 参数设置
- 关于设计模式的学习—结构型模式
- Python urlencode 编码和url拼接
- 解决绿C(C与C++程序设计学习与实验系统 2015)软件程序中文出现乱码问题
- Ubuntu下创建Linux启动图标问题