解决使用WKWebView加载html,调用系统电话没反应的问题
在使用WKWebView加载html时,在加载出来的界面上有一个拨打电话的功能。安卓那边可以正常不打电话,iOS端点击打电话这个功能根本就没有任何反应,查了一下WKWebView的资料,发现在使用WKWebView的时候 如果不去使现相应的代理,WKWebView默认会屏蔽掉打电话等URL。
【解决使用WKWebView加载html,调用系统电话没反应的问题】解决办法:实现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
推荐阅读
- parallels|parallels desktop 解决网络初始化失败问题
- 考研英语阅读终极解决方案——阅读理解如何巧拿高分
- 由浅入深理解AOP
- 【译】20个更有效地使用谷歌搜索的技巧
- mybatisplus如何在xml的连表查询中使用queryWrapper
- MybatisPlus|MybatisPlus LambdaQueryWrapper使用int默认值的坑及解决
- MybatisPlus使用queryWrapper如何实现复杂查询
- SpringBoot调用公共模块的自定义注解失效的解决
- 解决SpringBoot引用别的模块无法注入的问题
- iOS中的Block