在使用WKWebView加载html时,在加载出来的界面上有一个拨打电话的功能。安卓那边可以正常不打电话,iOS端点击打电话这个功能根本就没有任何反应,查了一下WKWebView的资料,发现在使用WKWebView的时候 如果不去使现相应的代理,WKWebView默认会屏蔽掉打电话等URL。
解决办法:实现WKWebView的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];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:callPhone]];
}
decisionHandler(WKNavigationActionPolicyAllow);
}
这样就把问题解决了。
如果你需要原生和html交互的话,推荐大家使用这个 WebViewJavascriptBridge