iOS開發 解決WKWebView載入的h5,無法呼叫撥打電話功能
阿新 • • 發佈:2019-01-07
h5的撥打電話程式碼是
<a href="tel:13112345678">移動WEB頁面JS一鍵撥打號碼諮詢功能</a>
UIWebView載入的h5,可以呼叫;但是WKWebView就是不行,找了半天,最後解決,在WKWebView的WKNavigationDelegate代理方法處理,程式碼如下:
// 處理撥打電話以及Url跳轉等等 - (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler { NSURL *URL = navigationAction.request.URL; NSString *scheme = [URL scheme]; if ([scheme isEqualToString:@"tel"]) { NSString *resourceSpecifier = [URL resourceSpecifier]; NSString *callPhone = [NSString stringWithFormat:@"telprompt://%@", resourceSpecifier]; /// 防止iOS 10及其之後,撥打電話系統彈出框延遲出現 dispatch_async(dispatch_get_global_queue(0, 0), ^{ [[UIApplication sharedApplication] openURL:[NSURL URLWithString:callPhone]]; }); } decisionHandler(WKNavigationActionPolicyAllow); }
ps:注意,這個方法也是處理一些Url跳轉的方法,當內部有些Url跳轉需要處理的時候,需要在這個方法內處理