タップしたリンクのURLをWKWebView
に取得したいとします。リンクは、アプリで特定のアクションを引き起こすカスタム形式です。例えばhttp://my-site/help#deeplink-intercom
。私はそうのようなKVO
を使用しています:リンクが初めてでタップされるとWKWebViewでリンクURLをタップする
override func loadView() {
let webConfiguration = WKWebViewConfiguration()
webView = WKWebView(frame: .zero, configuration: webConfiguration)
webView.navigationDelegate = self
webView.addObserver(self, forKeyPath: "URL", options: .new, context: nil)
view = webView
}
override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) {
if let newValue = change?[.newKey] {
print("url changed: \(newValue)")
}
print("Did tap!!")
}
は、これは素晴らしい作品。しかし、同じリンクを2回タップするとリンクタップは報告されません(実際の値は変更されていないためです)。これを修正するための回避策がありますので、すべてのタップを検出してリンクを取得できますか?この上のポインタは素晴らしいでしょう!ありがとう!
私が探していたもの!ご協力いただきありがとうございます! – Kex