WKWebView处理js打开新标签(新窗口)
在开发中我偏向使用WKWebView,因为他更加轻量级,有更好的性能。
今天在做一个项目时发现,一个网页点击后没反应。
PC浏览器是正常运行的,不过会打开新标签。也就是js中使用了window.open()代码。
问题定位到,查看WKWebView的UIDelegate中的方法。
发现- (nullable WKWebView *)webView:(WKWebView *)webView createWebViewWithConfiguration:(WKWebViewConfiguration *)configuration forNavigationAction:(WKNavigationAction *)navigationAction windowFeatures:(WKWindowFeatures *)windowFeatures符合要求,大概意思是创新新的webview会回调到这个方法里。
最终处理代码如下,如果有新标签页就在当前webView网页打开相应链接。
1 | - (nullable WKWebView *)webView:(WKWebView *)webView createWebViewWithConfiguration:(WKWebViewConfiguration *)configuration forNavigationAction:(WKNavigationAction *)navigationAction windowFeatures:(WKWindowFeatures *)windowFeatures{ |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Welcome Keven's Blog!