WKWebView中a标签设置target问题

问题描述:

HTML代码中 a 标签设置 target 属性为 _blank,因为 _blank 属性在浏览器中代表打开一个新窗口,但在 WKWebView 中会导致 WKNavigationDelegate 导航方法被调用两次

打开链接
navigationAction 分析:

1、首次打开h5页面,targetFrame request 为 null

 { URL: file:///private/var/containers/Bundle/Application/74B78B54-3ECE-422A-8A22-101AC2C6B3D2/Gundam.app/test.html }; 
sourceFrame = (null); 
targetFrame = >

2、点击

解决方案二

WKNavigationDelegate 导航方法中判断navigationAction.targetFrame属性

- (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler
{
    WKFrameInfo *frameInfo = navigationAction.targetFrame;
    // 判断frameInfo,处理业务逻辑代码
    decisionHandler(WKNavigationActionPolicyAllow);
}

你可能感兴趣的:(WKWebView中a标签设置target问题)