美文网首页
swift -WKWebView的加载进度和标题的观察者

swift -WKWebView的加载进度和标题的观察者

作者: 我是一个大胖墩 | 来源:发表于2022-10-19 16:19 被阅读0次
    这是一个WKWebView的进度观察者
    private lazy var progressObservation: NSKeyValueObservation = {
        var observation = self.webView.observe(\.estimatedProgress, options: [.old, .new], changeHandler: { webView, change in
            self.progressCount += 1
            self.checkTimeout(self.progressCount, timeout: 10.0)
            if webView.estimatedProgress > 0.1 {
                self.progressView.setProgress(Float(webView.estimatedProgress), animated: true)
            }
            log.debug("网页\(self.urlString)加载进度为:\(self.webView.estimatedProgress),是否还在加载\(webView.isLoading)旧的进度为:\(change.oldValue ?? 0)新的进度为:\(change.newValue ?? 0)")
            if webView.estimatedProgress >= 1 {
                UIView.animate(withDuration: 0.3, delay: 0.1, options: .curveEaseOut, animations: {
                    
                }, completion: { (finish) in
                    self.resetProgress()
                })
            }
        })
        return observation
    }()
    
    private func checkTimeout(_ count: Int, timeout: CGFloat) {
        Timer.after(10.second) {
            if count == self.progressCount {
                self.resetProgress()
                log.debug("\(timeout)秒进度没有动了,已经超时了,自动隐藏进度条")
                return
            }
        }
    }
    
    private func resetProgress() {
        self.progressView.isHidden = true
        self.progressView.setProgress(0.1, animated: false)
        self.progressCount = 0
    }
    
    这是WKWebView的标题观察者
    private lazy var titleObservation: NSKeyValueObservation = {
        var observation = self.webView.observe(\.title, options: [.old, .new], changeHandler: { [weak self] webView, change in
            guard let `self` = self else { return }
            self.title = self.webView.title!.count > 0 ? self.webView.title : self.titleString
        })
        return observation
    }()
    

    相关文章

      网友评论

          本文标题:swift -WKWebView的加载进度和标题的观察者

          本文链接:https://www.haomeiwen.com/subject/qnpuzrtx.html