最近在项目开发中,遇到了点击链接无法跳转的问题,类似<a href="http://test.xxxx.com:8088/webServer/shareUrl/redirect?id=425" target="_blank">电脑</a>,因为这是个网页,开始还以为是h5开发人员没把这个链接的js事件监听没给我,后来才发现是自己有几个WKWebView的delegate方法没有实现,顿时一阵尴尬。
wkWebView 点击链接无反应 ,多半是因为网页中有target="_blank" 在新窗口打开链接,解决方法有2种任选一种实现就ok:
1. -(void)webView:(WKWebView*)webView decidePolicyForNavigationAction:(WKNavigationAction*)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler{
//如果是跳转一个新页面 if(navigationAction.targetFrame== nil){
[webView loadRequest:navigationAction.request];
}
decisionHandler(WKNavigationActionPolicyAllow);
}
2.-(WKWebView *)webView:(WKWebView *)webView createWebViewWithConfiguration:(WKWebViewConfiguration *)configuration forNavigationAction:(WKNavigationAction *)navigationAction windowFeatures:(WKWindowFeatures *)windowFeatures
{
NSLog(@"createWebViewWithConfiguration");
if (!navigationAction.targetFrame.isMainFrame) {
[webView loadRequest:navigationAction.request];
}
return nil;
}
2种方法都亲测有效。
网友评论