美文网首页iOS那些事iOS Developer
iOS开发 解决WKWebView加载的h5,无法调用拨打电话功

iOS开发 解决WKWebView加载的h5,无法调用拨打电话功

作者: HOULI | 来源:发表于2017-06-02 15:03 被阅读65次

    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(WKNavigationActionPolicyCancel);
    }

    !注意 这个功能只有在真机上才有效,

    相关文章

      网友评论

        本文标题:iOS开发 解决WKWebView加载的h5,无法调用拨打电话功

        本文链接:https://www.haomeiwen.com/subject/vwrufxtx.html