Swift KVO 的使用, 取值问题

本次使用的目的是监听 UIWebView 的变化, 但是监听值不能直接取出, 需要as 转换
1.Swift 的change 不能直接取出
2.eroor 取值

// 添加KVO 监听
self.wkWebView.addObserver(self, forKeyPath: "title", options: NSKeyValueObservingOptions.new, context: nil)
// MARK: - KVO  监听  取值: as 转换类型后, 和 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("当前的 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("当前的 URL", url!)
            
            if title.contains("监听的属性变化值") {
                // 出发事件
        
            }

        }
    
    
       }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容