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

标签 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 - WKWebView 函数用于检测 URL 是否已更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41216099/

相关文章:

ios - 无法访问子文件夹中的所有文件

ios - MPMusicPlayerController 的 setNowPlayingItem 在 SWIFT 中不起作用

swift - 如何从苹果指南中理解 "add new instance methods by extentions"?

swift - popToViewController 无法弹出查看错误

javascript - iOS:WKWebView 中的 Javascript 代码在从照片库中选择照片并上传到服务器之前出现 “query cancelled” 错误

ios - 隐藏某些 View 时对齐不同的 View ?

iOS - 混合两个音频文件

ios - 在 UITableView 出现之前将 PFObject 在自定义类之间传递给 viewController

macos - WKWebView 的自定义剪切、复制和粘贴操作

ios - 如何使用 WKWebView 读取页面的 MIME 类型?