在使用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
网友评论