我和WKWebview有点问题。我正在将一个画布从html加载到Webview中。这是链接:https://cdn-factory.marketjs.com/en/color-fill-playable-ad-demo/index.html
它运行完美的html游戏加载和一切似乎都很好,触摸事件是工作时,你玩迷你游戏有一个按钮“安装立即”,应该会打开应用程序商店的网址,当我点击它时,没有任何反应。在浏览器上,它可以工作,我已经尝试了一些游戏,但都不起作用。
有什么建议吗?webview首选项allowjs和allow inline media设置为true。除此之外,我找不到任何关于它的信息。感谢您的帮助:D谢谢!
iOS: 13.4.1 Swift:最多5 iPhone xs
发布于 2020-06-28 23:42:27
好吧,我想通了。以防将来有人撞上它。
所以这个网页使用了:
window.open("http://asdfsadfsda")
在新窗口中打开url的javascript代码。
除非您实现WKUIDelegate
和方法,否则WKWebview
不会执行任何操作
webView(_ webView: WKWebView, createWebViewWith configuration: WKWebViewConfiguration,
for navigationAction: WKNavigationAction,
windowFeatures: WKWindowFeatures) -> WKWebView?;
为了让这个方法被调用,另一件重要的事情是在webview首选项中进行如下设置:
let preferences = WKPreferences()
preferences.javaScriptEnabled = true
let configuration = WKWebViewConfiguration()
configuration.preferences = preferences
configuration.allowsInlineMediaPlayback = true;
configuration.preferences.javaScriptCanOpenWindowsAutomatically = true
configuration.preferences.javaScriptEnabled = true
然后,您可以在委托方法中处理新页面的打开。如果你仍然想要一个新的窗口,你应该创建一个新的webview,并在委托方法中返回它。
在我的例子中,它什么也不做,只是获取url,等等。所以我返回了nil。
祝你好运:)
https://stackoverflow.com/questions/62623711
复制相似问题