Javascript 为什么WKWebView无法运行processingjs脚本?
我需要在本地资源的iOS的webview html/js中运行一些processing.js脚本。首先我尝试使用UIWebView,然后我看到文档建议使用WKWebView以获得更好的性能。因此,我编写了以下代码:Javascript 为什么WKWebView无法运行processingjs脚本?,javascript,ios,uiwebview,wkwebview,processing.js,Javascript,Ios,Uiwebview,Wkwebview,Processing.js,我需要在本地资源的iOS的webview html/js中运行一些processing.js脚本。首先我尝试使用UIWebView,然后我看到文档建议使用WKWebView以获得更好的性能。因此,我编写了以下代码: if NSClassFromString("WKWebView") != nil { let webConfiguration = WKWebViewConfiguration() wkWebView = WKWebView(frame: se
if NSClassFromString("WKWebView") != nil {
let webConfiguration = WKWebViewConfiguration()
wkWebView = WKWebView(frame: self.view.bounds, configuration:webConfiguration)
wkWebView!.scrollView.isScrollEnabled=false
wkWebView!.uiDelegate = self
self.view.addSubview(wkWebView!)
wkWebView!.load(request)
} else {
uiWebView = UIWebView(frame: self.view.bounds)
uiWebView!.scrollView.isScrollEnabled=false
self.view.addSubview(uiWebView!)
uiWebView!.loadRequest(request)
}
处理动画仅在UIWebView中运行,而不在WKWebView中运行;使用WK可以正确呈现除画布以外的页面本身元素,但画布为空。
我已经在iOS 10.3和iOS 8上试过了。
我想也许我需要以某种方式配置WKWebView。但是在文档中没有找到这样的配置选项。
有人注意到同样的问题吗
与这个问题相关的是:我应该如何在iOS中的webview中调试javascript,比如桌面Chrome中的控制台?我至少可以肯定地回答调试方面的问题,并给出关于它通常可能失败的原因的指示 调试可以在macOS Safari中完成。激活开发人员菜单设置-高级-在菜单栏中显示开发菜单。在上述菜单中,一旦你的应用程序在模拟器或连接的设备上运行,你可以选择你的设备/模拟器,然后连接到你的应用程序或webview 通常,问题可能是文件权限问题,甚至是ATS问题。如果我没有弄错的话,您是在从本地文件构造请求。这可能会对治疗方式产生影响,但我承认我不确定。WKWebView在这方面更为严格。您可能还希望确保标准配置使用的WKPreferences对象满足您的需要。它有几个关于Java的属性,默认情况下允许使用JS,但它不能打开windows。
哦,我猜你没有在设备/模拟器的设置应用程序中停用JS?现场!Safari中的调试工作非常出色,控制台报告资源加载失败:飞行前响应未成功。Processing.js正在AppBundle中加载文件,但失败。我环顾四周,这似乎就是原因:。我现在只使用UIWebView。谢谢