ios - 用于检测 URL 是否已更改的 WKWebView 函数

标签 ios swift wkwebview

WKWebView 类是否有一个函数允许您检测该 WebView 的 URL 是否已更改?

在 WebView 中处理某些元素时,didCommitdidStartProvisionalNavigation 函数似乎并不总是触发。

编辑:尝试添加通知观察器。到目前为止,这是我所拥有的:

extension Notification.Name {
    static let checkURL = Notification.Name("checkURL")
}

NotificationCenter.default.post(name: .checkURL, object: nil)
NotificationCenter.default.addObserver(self, selector: #selector(getter: webView.url), name: .checkURL, object: webView.url)

最佳答案

Swift 版本

// Add observer
webView.addObserver(self, forKeyPath: "URL", options: .new, context: nil)

// Observe value
override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) {
    if let key = change?[NSKeyValueChangeKey.newKey] {
        print("observeValue \(key)") // url value
    }
}

关于ios - 用于检测 URL 是否已更改的 WKWebView 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41213185/

相关文章:

ios - 如何创建IBDesignable自定义 View ?

ios - WKWebView 底部约束集但不起作用

ios - 我如何将所有内容从一个 WKWebView 复制到一个新的 WKWebView

html - UIWebView如何检测<img src =“…”/>

objective-c - 如何执行 [self.view addSubview : lbl] outside of ViewController Class scope?

arrays - 具有不同类型的 Swift 二维数组

ios - RSA 公钥生成——Swift

ios - 如何防止 WKWebView 重复请求访问位置的权限?

ios - 重写 ios 方法时何时使用 super

ios - 在 NSManagedObject 的子类上使用点符号会导致 UnrecoginzedSelectorException