WKWebView整理

1 超链接中带有 target='_blank' 时,导致WKWebView无法加载点击后的网页

如果你发现你的WKWebView中的网页,点击某个按钮或链接无反应时候,可以关注一下该链接是否带有 target='_blank' 。

_blank 标签,众所周知,是让浏览器新开一个页面来打开链接,而不是在原网页上打开。在UIWebView上,只有一个页面,所以会自动在原来的页面上打开新链接。但是在WKWebView上就不是这样了。

WKWebView需要打开新页面时,将先调用 decidePolicyForNavigationAction 这个方法的参数 WKNavigationAction 中有两个属性:sourceFrame和targetFrame,分别代表这个action的出处和目标。类型是 WKFrameInfo 。WKFrameInfo有一个 mainFrame 的属性,正是这个属性标记着这个frame是在主frame里还是新开一个frame。

如果 targetFrame 的 mainFrame 属性为NO,表明这个 WKNavigationAction 将会新开一个页面。

解决办法1

利用WKUIDelegate、指定webView.uiDelegate = self 后

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容