ios app 使用WKWebView加载H5页面,无法拨打电话?

由于app是用的外包公司做的,所以我们想做一个h5页面满足自己的需求,达到少量的金钱,但是在ios系统app上面使用a标签或window.location.href
= tel://${res.result.switchNumber}拨打电话都不行,但是在ios浏览器上是可以进行拨打的,请问这是什么原因啊?有没有什么解决办法
阅读 3k
1 个回答

老生常谈的问题了,需要设置代理方法。

// 处理拨打电话以及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];  
        /// 防止iOS10+,拨打电话系统弹出框延迟出现
        dispatch_async(dispatch_get_global_queue(0, 0), ^{  
            [[UIApplication sharedApplication] openURL:[NSURL URLWithString:callPhone]];  
        });  
    }  
    decisionHandler(WKNavigationActionPolicyAllow);  
} 
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题