首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >WKWebView画布问题。canvas中的链接不起任何作用

WKWebView画布问题。canvas中的链接不起任何作用
EN

Stack Overflow用户
提问于 2020-06-28 22:12:10
回答 1查看 309关注 0票数 0

我和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

EN

回答 1

Stack Overflow用户

发布于 2020-06-28 23:42:27

好吧,我想通了。以防将来有人撞上它。

所以这个网页使用了:

代码语言:javascript
运行
复制
window.open("http://asdfsadfsda")

在新窗口中打开url的javascript代码。

除非您实现WKUIDelegate和方法,否则WKWebview不会执行任何操作

代码语言:javascript
运行
复制
webView(_ webView: WKWebView, createWebViewWith configuration: WKWebViewConfiguration,
         for navigationAction: WKNavigationAction,
         windowFeatures: WKWindowFeatures) -> WKWebView?;

为了让这个方法被调用,另一件重要的事情是在webview首选项中进行如下设置:

代码语言:javascript
运行
复制
        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。

祝你好运:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62623711

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档