WKWebView 加載完鏈接后點(diǎn)擊內(nèi)部鏈接無(wú)法跳轉(zhuǎn),是因?yàn)?lt;a href = "xxx" target = "_black"> 中的target = "_black" 是打開新的頁(yè)面,所以無(wú)法在當(dāng)前頁(yè)面打開,需要在當(dāng)前頁(yè)重新加載url
a 超連接中target的意思
_blank -- 在新窗口中打開鏈接
_parent -- 在父窗體中打開鏈接
_self -- 在當(dāng)前窗體打開鏈接,此為默認(rèn)值
_top -- 在當(dāng)前窗體打開鏈接,并替換當(dāng)前的整個(gè)窗體(框架頁(yè))
解決方法一WkUIDelegate:
-(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;
}
解決方法二 WKNavigationDelegate:
-(void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler
{
//如果是跳轉(zhuǎn)一個(gè)新頁(yè)面
if (navigationAction.targetFrame == nil) {
[webView loadRequest:navigationAction.request];
}
decisionHandler(WKNavigationActionPolicyAllow);
}