1
我有一個WKWebView,我想處理觸摸,但我無法找到正確的方法。是WKCompositingView攔截觸摸嗎?
webView是以編程方式在viewDidLoad中創建的,並且加載正常。
override func viewDidLoad() {
super.viewDidLoad()
let site = "http://google.com"
let url = URL(string: site)
let request = URLRequest(url: url!)
webView = WKWebView(frame: self.view.frame)
webView.navigationDelegate = self
webView.uiDelegate = self // is this necessary for UITouch recognition?
webView.load(request)
self.view.addSubview(webView)
}
我已經嘗試在viewDidLoad中添加UITapGestureRecognizer ...(每UIWebView and touch event)
override func viewDidLoad() {
//...
let taprecognizer = UITapGestureRecognizer(target: self, action: #selector(tapLocation))
taprecognizer.numberOfTapsRequired = 1
taprecognizer.delegate = self
webView.addGestureRecognizer(taprecognizer)
}
func tapLocation(recognizer: UITapGestureRecognizer, shouldRecognizeSimultaneouslyWith otherGestureRecognizer: UIGestureRecognizer) -> Bool {
print("tapped")
return true
}
我也試着從獲得觸摸...
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
print("tapped")
}
我的Debug視圖層次結構顯示了一堆WKCompositingViews,這讓我認爲這些在使用觸摸之前可以到達WKWebView或View。
我添加的UIViewController,UIWebViewDelegate,WKNavigationDelegate,WKUIDelegate,UIGestureRecognizerDelegate上課...但它只是不會去。
是你能解決這個問題問題? – glo
你的意思是你想在'WKWebView'中處理觸摸,或者你想處理WebView中的鏈接? – Jaydeep
@Superman我試圖處理在'WKWebview'範圍內發生的觸摸。我相信我這樣做是爲了使用鏈接,但我學會了使用'evaluateJavaScript'來代替,所以我仍然找到了解決此問題的方法。 – Dustin