网站上许多链接似乎在他们的onclick句柄中使用window.open,但WKWebView似乎完全忽略window.open。
有没有解决办法?
我尝试将javaScriptCanOpenWindowsAutomatically偏好设置为true,但似乎没有帮助。
当Web应用程序在JavaScript中调用window.open()
时,WKWebView
将在其UIDelegate
上调用webView:createWebViewWithConfiguration:forNavigationAction:windowFeatures:
方法。
在该代理方法中,您应该使用提供给您的WKWebViewConfiguration
创建一个新的WKWebView
。如果您将这个新的WKWebView
呈现在屏幕上,它将会加载正确的内容。
这在WKUIDelegate文档中有记录,尽管没有明确说明这是由于window.open()
而调用的。
webView.uiDelegate
以实现createWebViewWith configuration
。如果您从UIWebView
迁移到WKWebView
,则需要这样做,因为window.open
不起作用。 - vberihuetecreateWebViewWithConfiguration
为什么没有被触发可能是什么问题?尽管我的 WebView 已经设置了代理?如果您能提供一些建议,我将不胜感激。详细问题请参见此处:https://stackoverflow.com/questions/60851538/wkwebview-does-not-trigger-method-createwebviewwithconfiguration - Tommy Leongweb.configuration.preferences.javaScriptCanOpenWindowsAutomatically = true
(在iOS中默认为false)。 - bendytree