私は触れたいWKWebViewを持っていますが、正しいメソッドを見つけることができません。はWKCompositingViewがタッチをブロックしていますか?
webViewは、プログラムでviewDidLoadで作成され、正常に読み込まれます。 (UIWebView and touch eventあたり)私はのviewDidLoadでUITapGestureRecognizerを追加しようとしました
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)
}
...
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")
}
マイデバッグビュー階層は、WKCompositingViewsの束を示しています.WKCompositingViewsは、WKWebViewまたはViewに到達する前にタッチを使用していると思います。
私はクラスにのUIViewController、UIWebViewDelegate、WKNavigationDelegate、WKUIDelegate、UIGestureRecognizerDelegateを追加しました...しかし、それだけで通過しません。ここで
は、あなたがこの問題を解決できました問題? – glo
あなたは 'WKWebView'でタッチを扱いたい、あるいはWebViewでリンクを扱いたいと思っていますか? – Jaydeep
@スーパーマン私は 'WKWebview'の範囲内で発生した接触を処理しようとしていました。私はリンクを使うためにそうしていたと信じていますが、代わりに 'evaluateJavaScript'を使うことを学んだので、私はまだこの問題の解決策を見つけました。 – Dustin