WKWebView加载一些页面的时候有时会出现页面内无法跳转链接,但是在safari浏览器中却可以正常跳转。
解决方案:
设置代理navigationDelegate
self.webView.navigationDelegate = self;
判断targetFrame是否为空,为空则重新加载请求。
- (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler {
if (navigationAction.targetFrame == nil) {
[webView loadRequest:navigationAction.request];
}
decisionHandler(WKNavigationActionPolicyAllow);
}
当使用WKWebView加载某些网页时,遇到内部链接无法正常跳转的问题,但同样的链接在Safari浏览器中却能正常工作。解决这个问题的方法是设置WKWebView的navigationDelegate为自身,并在代理方法中判断导航动作的目标框架(targetFrame)是否为空,如果为空,则重新加载请求。这样可以确保链接在WKWebView中正确导航。
919






