我需要在iOS的webview中运行一些processing.js脚本(本地资源中的html / js)。首先我尝试使用UIWebView
,然后我看到文档建议使用WKWebView
来提高性能。所以我写了下面的代码:
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)
}
有人在这注意到同样的问题吗?
与此问题相关:我应该如何在iOS中的webview中调试javascript(类似桌面Chrome中的控制台)?
答案 0 :(得分:1)
我至少可以肯定回答调试方面(并指出一般情况下它可能失败的原因)。
可以在您的(macOS)Safari中完成调试。激活开发人员菜单(设置 - 高级 - "在菜单栏中显示开发菜单")。在所述菜单中,一旦您的应用程序运行(在模拟器或连接的设备上),您可以选择您的设备/模拟器,然后连接到您的应用程序(或者更确切地说是webview)。
通常,问题可能是文件权限甚至是ATS问题。如果我找到你,你就可以从本地文件中构建你的请求了。这可能会影响它的处理方式,但我承认我不确定。 WKWebView
在这方面更为严格。您可能还希望确保标准配置使用的WKPreferences
对象满足您的需求。它有几个关于Java和JS的属性(默认情况下通常允许使用JS,但它不能打开窗口)。
哦,我假设你没有在设备/模拟器的设置应用程序中停用JS?