解决使用WKWebView加载html,调用系统电话没反应的问题

在使用WKWebView加载html时,在加载出来的界面上有一个拨打电话的功能。安卓那边可以正常不打电话,iOS端点击打电话这个功能根本就没有任何反应,查了一下WKWebView的资料,发现在使用WKWebView的时候 如果不去使现相应的代理,WKWebView默认会屏蔽掉打电话等URL。
【解决使用WKWebView加载html,调用系统电话没反应的问题】解决办法:实现WKWebView的WKNavigationDelegate的代理方法




解决使用WKWebView加载html,调用系统电话没反应的问题
文章图片
- (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

    推荐阅读