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.Когда я попытался пролистать изображения в нем.Я мог только перейти ко 2-му изображению, и дальнейшее считывание не работало.Но когда я добавил 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') })
"""
Но на этот раз он тоже не работал.И вопрос остается прежним.