本次使用的目的是監(jiān)聽 UIWebView 的變化, 但是監(jiān)聽值不能直接取出, 需要as 轉(zhuǎn)換
1.Swift 的change 不能直接取出
2.eroor 取值
// 添加KVO 監(jiān)聽
self.wkWebView.addObserver(self, forKeyPath: "title", options: NSKeyValueObservingOptions.new, context: nil)
// MARK: - KVO 監(jiān)聽 取值: as 轉(zhuǎn)換類型后, 和 OC 一樣的操作
override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) {
let changeDic = change! as NSDictionary
let title:String = changeDic.value(forKey: "new")! as! String
print("當(dāng)前的 change", changeDic.value(forKey: "new")!)
let js = "callJsAlert()"
self.wkWebView.evaluateJavaScript(js) { (re, error) in
let er = error! as NSError
let url = er.userInfo["WKJavaScriptExceptionSourceURL"]
print("當(dāng)前的 URL", url!)
if title.contains("監(jiān)聽的屬性變化值") {
// 出發(fā)事件
}
}
}