WKWebView 和 window.open

WKWebView and window.open

网站上的许多链接似乎在其 onclick 处理程序中使用 window.open,但 WKWebView 似乎完全忽略了 window.open。

有解决办法吗?

我尝试将 javaScriptCanOpenWindowsAutomatically 首选项设置为 true,但这似乎没有帮助

当 Web 应用程序在 JavaScript 中调用 window.open() 时,WKWebView 将在其 UIDelegate.

中调用 - webView:createWebViewWithConfiguration:forNavigationAction:windowFeatures: 方法

在该委托方法中,您应该使用提供给您的 WKWebViewConfiguration 创建一个新的 WKWebView。如果您在屏幕上显示这个新 WKWebView,它将加载正确的内容。

这在 WKUIDelegate documentation 中有记录,尽管它不是很明确地说这是由于 window.open() 调用的结果。