一 URL Scheme 的方式
URL Scheme 可以理解成与网址一样的东西.
如果第三方App 注册过URL Scheme
那么就可以在我们的app中进行简单的配置后进行调用. 然后就会跳转到对应的app中.
具体的配置步骤:
首先在自己app 的 info.plist 文件中 找到 LSApplicationQueriesSchemes这一项中添加可跳转第三方程序的URL Scheme. 它相当于是一个可跳转应用的白名单列表. 只有配置完后,系统才会去进行识别,然后判断出你的手机上是否装有该app ,然后进行跳转
- 配置完后, 进行跳转的相关代码
NSString *urlString = @"Taobao://";
NSURL *url = [NSURL URLWithString:urlString];
if ([[UIApplication sharedApplication] canOpenURL:url]){
[[UIApplication sharedApplication] openURL:url options:@{
} completionHandler:^(BOOL success) { }];
} else {
[self showMessage:@"没有该应用"];
}
使用举例: 当在美团付款时,会调用打开支付宝进行付款操作; 如在网易新网分享一篇文章到朋友圈时,就会调用微信,并默认跳转到朋友圈页面.
他们之间的交互都是通过传递的URL中所带的参数进行的, 类似于post请求中的传参方式
我们现在的需求是,想点击一个PDF的时候,想打开可以预览/编辑该文件格式的第三方APP ,如WPS 等等.
但也因为URL传参的局限性,我们现在仅仅是只等跳转到第三方程序中,而PDF文件并没有带过去. (除非WPS 等第三方APP在开发文档中有注明支持相应的传输方式. 就像微信有调用微信相机的Scheme参数,支付宝有调用付款接口的Scheme参数. 而通过查找,WPS等相关类型的app 并不支持这种方式 ) 所以,目前该方法行不通.
URLScheme 延伸扩展: 比如配置我们自己APP 的URLScheme 提供给其他app 调用, 以及 我们如何拦截URLScheme参数,并进行相应的跳转等操作. 以及URL的传参格式等等都可以在官方文档和论坛中查看到该教程.
二
iOS提供了使用其他app预览文件的支持: UIDocumentInteractionController是从ios 3.2的sdk开始支持的,他是直接继承自NSObject
iOS调用第三方程序打开文件,以及第三方调用自己的APP打开文件( )
当我们的手机上装了支持打开此格式预览的app 时, 我们调用这个类的方法,然后就会出现如上图中,支持的app 列表 . 同时也可以存到的”文件”中
通过该方法,比如点击pdf文件时,就会弹出该列表. 选择对应的app打开,就可以进行编辑,保存,以及分享等. 通过这种调用第三方的方式,目前满足初步对PDF等格式文件的编辑和保存.