美文网首页
iOS WKWebView 拨打电话 拦截不到

iOS WKWebView 拨打电话 拦截不到

作者: 唐人街的乞丐 | 来源:发表于2022-08-15 11:00 被阅读0次

    今天使用WKWebView 拦截H5 a标签打电话拦截不到

    // 使用方法
    // 在收到响应后,决定是否跳转
    - (void)webView:(WKWebView *)webView decidePolicyForNavigationResponse:(WKNavigationResponse *)navigationResponse decisionHandler:(void (^)(WKNavigationResponsePolicy))decisionHandler{
    
        NSLog(@"absoluteString = %@",navigationResponse.response.URL.absoluteString);
        NSString * strRequest = navigationResponse.response.URL.absoluteString;
        if ([strRequest containsString:@"tel:"]) {
            NSString * phoneNum = [strRequest substringFromIndex:[@"tel:" length]];
            [[UIApplication sharedApplication] openURL:[NSURL URLWithString:[NSString stringWithFormat:@"telprompt://%@",phoneNum]] options:@{UIApplicationOpenURLOptionsSourceApplicationKey:@YES} completionHandler:nil];
            decisionHandler(WKNavigationResponsePolicyCancel);
        }else{
            decisionHandler(WKNavigationResponsePolicyAllow);
        }
    }
    

    始终都收不到响应的拦截
    更改为
    /* 在发送请求之前,决定是否跳转 */

    - (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler {
        NSString * strRequest = navigationAction.request.URL.absoluteString;
        if ([strRequest containsString:@"tel:"]) {
            NSString * phoneNum = [strRequest substringFromIndex:[@"tel:" length]];
            [[UIApplication sharedApplication] openURL:[NSURL URLWithString:[NSString stringWithFormat:@"telprompt://%@",phoneNum]] options:@{UIApplicationOpenURLOptionsSourceApplicationKey:@YES} completionHandler:nil];
            decisionHandler(WKNavigationActionPolicyCancel);
        }else{
            decisionHandler(WKNavigationActionPolicyAllow);
        }
    }
    

    相关文章

      网友评论

          本文标题:iOS WKWebView 拨打电话 拦截不到

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