一般h5页面有联系我们然后点击拨打电话的功能,在使用的时候发现了UIWebView加载的H5,可以调用;但是WKWebView就是不行,解决WKWebView加载H5页面,无法调用拨打电话功能的问题
H5的拨打电话代码是
<a href="tel:13112345678">移动WEB页面JS一键拨打号码咨询功能</a>
解决的方法:在WKWebView的WKNavigationDelegate代理方法处理
解决代码如下:
// 处理拨打电话以及Url跳转等等
- (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler {
NSURL *URL = navigationAction.request.URL;
NSString *scheme = [URLscheme];
if ([schemeisEqualToString:@"tel"]) {
NSString *resourceSpecifier = [URLresourceSpecifier];
NSString *callPhone = [NSStringstringWithFormat:@"telprompt://%@", resourceSpecifier];
/// 防止iOS 10及其之后,拨打电话系统弹出框延迟出现
dispatch_async(dispatch_get_global_queue(0,0), ^{
[[UIApplicationsharedApplication]openURL:[NSURLURLWithString:callPhone]];
});
}
decisionHandler(WKNavigationActionPolicyAllow);
}
如果想了解如何在UIWebView和WKWebView上加载进度条请看我另一篇文章:
http://blog.csdn.net/wangxinxu521/article/details/77750596
demo的地址: