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


由于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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值