小弟技术有限,零基础接触ios才2个月,很多不懂。 如题: app A 如何把内容,传递给 app B, 我仅仅知道用 openURL的方法,可是这个方法貌似只能在app A 中直接打开 app B 并不能,将想要传递的内容,传给 app B。(补充:两个app都是本地的,不通过网络服务器中转,例如:手机端下载有百度地图app,把百度地图中的“广州市”地图包,保存到我自己写的app中)
补充: 针对5楼的@abigfrog 提出通过 服务器转换的方式,我忘记说明需求了,我们要求是两个app 都是在手机本地的哦,也就是本地的从一个app 把内容保存到 另外一个app中。 貌似很多软件都是通过服务器中转,例如:Drafts
请大家指点一二 不胜感激。
[[NSWorkspace sharedWorkspace] launchApplicationAtURL:[NSURL fileURLWithPath:Path]options:NSWorkspaceLaunchDefault configuration:[NSDictionary dictionaryWithObject:array forKey:NSWorkspaceLaunchConfigurationArguments] error:&error]; OS X上可以这么传,你看看iOS有木有类似的,对iOS表示不太了解
感觉楼上得都不太靠谱啊,明显微信的意思是可以打开很多种文件格式,和dropbox的网盘类应用类似啊。 ibooks能打开epub,我有个epub格式的文件就可以让ibooks打开,微信一定是在配置文件里设置的.*的文件都能打开,所以能传,如果b不支持a暴露出来的文件,必须是不可以的吧。
接受方先注册一个文件类型,参考 Technical Q&A QA1587
然后实现AppDelegate
的application:openURL:sourceApplication:annotation:
方法
之后发送方就可以使用UIDocumentInteractionController
类来指定发送一个文件
15楼 @董一凡 非常感谢你的思路,你的意思是,app A 将要传递的内容保存到 系统粘贴板(UIPasteboard),然后用url scheme 的方式发送UIPasteboard中的内容吗? 小弟目前还只会使用 url scheme的方式打开指定的app 还不知道如何用 url scheme 传递参数,例如:粘贴板上的内容,还望请教。
18楼 @Lithium 不太明白ios版的微信中有哪个功能是支持,本地app之间通信、传输数据的,读取本地照片肯定不算吧,读取系统粘贴板吗?? 你提出文件格式很正确,app B 肯定得支持 app A暴露出的文件
21楼 @sycx sycx老师在不在啊,按照你说的方法,我发现 app A中的文件,可以被 app B打开,可是app A中的那个文件 貌似不是被复制到 app B中的沙盒中,如何让app B 获取 app A 的文件呢?
27楼 @shifeng310 文件会被复制到App B的Documents/Inbox
目录
application:openURL:sourceApplication:annotation:
的参数url
就是指向那个文件
如果你的两个app在同一个team下,就是com.xxx.*前边的标示相同(这个限制是iOS7加入的,iOS7以前甚至不需要在同一个team下,猜测iOS7的微信的做法是存到了公用的系统剪切版),可以在A app中把数据存入一个带名字的UIPasteboard, 然后用url scheme的方式打开B app,然后在url scheme上带上这个UIPasteboard的名字,然后B app就可以去读取这个UIPasteboard里的内容了,这种方式比打开文件的方式更灵活,因为你可以直接放一段NSData,文件打开方式的话,你无法预知用户用什么应用打开你的文件
注明下,我说的微信的功能不是你们说的文件打开功能,微信的开放平台支持你分享一段数据给好友,然后好友在微信中点击这段数据会自动用你的app打开,如果app没有安装,会自动跳到你的app的安装网页
31楼 @董一凡 感谢 董老师的 耐心回答,从您的方法中可以看出这是一个可行的 关于ios app之间 文件共享的功能,不过可能跟我要预研的项目还是有点点偏差,我也不知道我这个项目的可行性如何,和文件共享区别有两点:1、我app想做的是,去读取另外一个app的沙盒,获取想要的内容; 2、获取的内容可能比较大,十几mb 到 一百多mb不等。我预研的项目就是 在iphone上写一个app 去读取 百度地图app中更新的地图,然后把iphone 手机和 车载导航连接起来,把新地图更新到车载导航中,现在技术难点就是卡在,用自己的app 获取百度地图app 这一环节上。 不管怎么样非常感谢你的帮忙
44楼 @zhangmeteor 呵呵,公司是跟百度合作啦,百度很多应用,我这个是针对百度地图提出的一个预研点,如果技术可行,就去跟百度谈,让他们暴露个接口什么的。