iOS WKWebView 拦截超链接,跳转至 Safari

4,687 阅读1分钟

0.原文地址:

https://blog.csdn.net/minghuyong2016/article/details/80552988

1.设置 WKNavigationDelegate 代理

self.wkWebView.navigationDelegate = self;

2.实现代理函数

- (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler {
    // WKNavigationTypeLinkActivated --> A link with an href attribute was activated by the user.
    if (navigationAction.navigationType == WKNavigationTypeLinkActivated) {
        if ([[UIApplication sharedApplication] canOpenURL:navigationAction.request.URL]) {
            [[UIApplication sharedApplication] openURL:navigationAction.request.URL options:@{} completionHandler:nil];
        }
        decisionHandler(WKNavigationActionPolicyCancel);
    } else {
        decisionHandler (WKNavigationActionPolicyAllow);
    }
    return ;
}