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型別的方法,然後在對應代理方法實現下,然後神奇的事情就出現了。想要的都有了。
如果你喜歡這篇文章,或者有任何疑問,可以掃描第一個二維碼,加樓主好友哦
也可以掃第二個二維碼,關注樓主個人微信公眾號。這裡有很多生活,職業,技術相關的文章哦。歡迎您的到來。
微訊號: 公眾號