1. 程式人生 > >iOS通過連結,應用內開啟APP或者跳轉APPStore對應下載

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型別的方法,然後在對應代理方法實現下,然後神奇的事情就出現了。想要的都有了。

如果你喜歡這篇文章,或者有任何疑問,可以掃描第一個二維碼,加樓主好友哦

也可以掃第二個二維碼,關注樓主個人微信公眾號。這裡有很多生活,職業,技術相關的文章哦。歡迎您的到來。

微訊號:                                             公眾號