天天看点

iOS通过链接,应用内打开APP或者跳转APPStore对应下载

开文:很急着实现的话,请按照最后一句话操作。

一:有一种是替换协议头,即是将 http:// 替换为 itms:// 或者 itms-apps://

       然后通过

       [[UIApplicationsharedApplication] openURL: itms:// 或者 itms-apps://后面跟上一堆];

       但是这种应用场景比较有限制,要跳转的app是我们已知道的,需要提前设置好,不智能

       下面我们看第二种方式。

二:判断url是否是跳转APP类型的,专门处理下就行了。

    应用场景举例:

     1. 电商应用,或者用户留存大的应用,想接个淘宝推广的app,那么用户在操作的时候,客户端是希望点击某个具          体应用           是,能够直接跳到淘宝对应的商品详情页,直接购买了,操作岂不是很简单。

         1).如果安装了淘宝,自动跳转淘宝。不安装,直接网页购买。

      2.金融项目。各种拉皮条,今天给一个app加个入口,比如是证券,基金,贷款等。想通过网页点击下载,跳转到appStore去下载            对应的产品。那么你前提是不知道是哪个项目的,那么如何通过智能的网页,就能跳转呢。

三:处理办法,下面将OC中UIWebView,WKWebView 以及Swift3.0种WKWebView中将如何设置

      首先贴上一个重要的判断方法:

#pragma mark - 应用跳转专用
/**
 *  url是否是跳转APP类型的
 *
 *  @param URL
 *
 *  @return BOOL
 */
- (BOOL)isJumpToExternalAppWithURL:(NSURL *)URL{
    NSSet *validSchemes = [NSSet setWithArray:@[@"http", @"https"]];
    return ![validSchemes containsObject:URL.scheme];
}           

      1.OC中UIWebView

#pragma mark - UIWebViewDelegate
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType{
  
    if([self isJumpToExternalAppWithURL:request.URL]) {
        [[UIApplication sharedApplication] openURL:request.URL];
        return NO;
    }
    return YES;
}
           

   2.OC中WKWebView

#pragma mark - WKNavigationDelegate
- (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler{
    if([self isJumpToExternalAppWithURL:navigationAction.request.URL]) {
        [[UIApplication sharedApplication] openURL:navigationAction.request.URL];
        decisionHandler(WKNavigationActionPolicyAllow);
    }
    decisionHandler(WKNavigationActionPolicyAllow);
}           

  3. Swift3.0种WKWebView

    暂时还没具体设置,回头有了再补。。有需要的根据OC类比试试就行了。。

四:如果你一脸懵逼的看着,为啥一个方法就能搞定那么多事,还有很多乱七八糟的写了那么多。。。那么我告诉你,不要慌,不要急,复制那个判断 url是否是跳转APP类型的方法,然后在对应代理方法实现下,然后神奇的事情就出现了。想要的都有了。

如果你喜欢这篇文章,或者有任何疑问,可以扫描第一个二维码,加楼主好友哦

也可以扫第二个二维码,关注楼主个人微信公众号。这里有很多生活,职业,技术相关的文章哦。欢迎您的到来。

微信号:

iOS通过链接,应用内打开APP或者跳转APPStore对应下载

                                             公众号

iOS通过链接,应用内打开APP或者跳转APPStore对应下载