static func getWebKitView(uiController : ViewController, uiView : UIView, handlerName : String) -> WKWebView {
let controller = WKUserContentController()
controller.add(uiController, name: handlerName)
let config = WKWebViewConfiguration()
config.userContentController = controller
let scriptSource = """
document.addEventListener('touchstart', function() { console.log('touchstart from Swift') })
"""
let script = WKUserScript(source: scriptSource, injectionTime: .atDocumentEnd, forMainFrameOnly: true)
controller.addUserScript(script)
let webKitView = WKWebView(frame: .init(x: 0.0, y: 0.0, width: uiView.frame.width, height: uiView.frame.height), configuration: config)
webKitView.scrollView.isScrollEnabled = false
webKitView.scrollView.contentSize = uiView.frame.size
// webKitView.isUserInteractionEnabled = false
return webKitView
}
添加
scriptSource
有何帮助?
我已经在我的JavaScript应用中制作了轮播。当我尝试在其中滑动图像时。我只能移动到第二张图片,而进一步滑动则无效。但是当我添加scriptSource
时,此问题已解决。
我想知道添加该段代码后实际上发生了什么,为什么没有我的js代码就没有监听touchmove
事件。
我尝试更改此脚本
let scriptSource = """
document.addEventListener('touchstart', function() { console.log('touchstart from Swift') })
"""
使用此脚本
let scriptSource = """
document.getElementByClassName('carousel-container').addEventListener('touchstart', function() { console.log('touchstart from Swift') })
"""
但是这次它也不起作用。问题依旧。