应用内打开PDF或者京东、淘宝等第三方应用

要想打开pdf、淘宝等等,我们首先需要一个链接url,通过webview加载这个链接url,设置webview的代理,并实现将要加载请求的方法,这里进行网络请求的拦截,如果是.pdf结尾的直接调用[[UIApplication sharedApplication] canOpenURL:这个方法,就可以正常打开PDF了,同样的道理,如果我们加载的是京东或者淘宝的链接,他们有各自协议头,我们通过拦截他们的请求,判断是我们需要的,则调用[[UIApplication sharedApplication] canOpenURL:这个方法。
如果是打开第三方应用,紧紧这么做苹果是不让我们打开第三方应用的,我们还需要在info.plist里面的白名单中添加我们要打开第三方的协议头(schemes),京东对应openapp.jdmobile,淘宝对应taobao,至于其他的第三方需要自己测试添加!

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType{
NSURL *url = [request URL];

// 应用内打开PDF
if (navigationType == UIWebViewNavigationTypeLinkClicked && [url.absoluteString hasSuffix:@".pdf"])
{
    if([[UIApplication sharedApplication]canOpenURL:url])
    {
        [[UIApplication sharedApplication]openURL:url];
        return NO;
    }

}
// 打开京东
if ([url.absoluteString hasPrefix:@"openapp"]) {
    if([[UIApplication sharedApplication]canOpenURL:url])
    {
        [[UIApplication sharedApplication]openURL:url];
        return NO;
    }
}
// 打开淘宝
if ([url.absoluteString hasPrefix:@"taobao"]) {
    if([[UIApplication sharedApplication]canOpenURL:url])
    {
        [[UIApplication sharedApplication]openURL:url];
        return NO;
    }
}

return YES;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • iOS开发系列--网络开发 概览 大部分应用程序都或多或少会牵扯到网络开发,例如说新浪微博、微信等,这些应用本身可...
    lichengjin阅读 3,705评论 2 7
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,196评论 4 61
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 172,916评论 25 708
  • 今天是来到吴哥开始度假的第一天。抛开世界文化遗产让人震撼不说,吴哥旅游业有很多值得改进的地方。 1.进海关要小费!...
    寒晗Tylor阅读 104评论 0 0
  • 想要的太多,努力的太少
    魏小霜阅读 192评论 0 0