iOS開發 WKWebView加載的H5,無法調用撥打電話功能

  • h5的撥打電話代碼是:

<a href="tel:+8400000000" style="color: #4CA74F;float: right;">+84 00000000</a>

  • 網上找了很多都沒能解決  最後自己處理如下
  • #pragma mark - WKNavigationDelegate

- (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(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{

            dispatch_async(dispatch_get_main_queue(), ^{   //注意主線程調用

                [[UIApplication sharedApplication] openURL:[NSURL URLWithString:callPhone]];

            });

        });

        decisionHandler(WKNavigationActionPolicyCancel);  //比不可少  不然會閃退

        return;

    }else{

        decisionHandler(WKNavigationActionPolicyAllow);

    }

}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章