近期遇到一个问题,WKWebview之后超链接无法唤起微信 最终排查到是没有加这个delegae方法
- (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler {}
通过获取navigationAction.request.URL是可以拿到当前webView的url,当判断非网络协议或者为非about blank 空白页时则允许跳转外部
NSURL *url = navigationAction.request.URL;
NSString *scheme = url.scheme;
if (navigationAction.targetFrame == nil) {
[[UIApplication sharedApplication] openURL:navigationAction.request.URL];
decisionHandler(WKNavigationActionPolicyAllow);
} else {
if (![scheme isEqualToString:@"https"] && ![scheme isEqualToString:@"http"] && ![scheme isEqualToString:@"about"]) {
[[UIApplication sharedApplication] openURL:url];
decisionHandler(WKNavigationActionPolicyCancel);
} else {
decisionHandler(WKNavigationActionPolicyAllow);
}
}