美文网首页
Swift WKWebView侧滑返回时html逐级返回,而不是

Swift WKWebView侧滑返回时html逐级返回,而不是

作者: 周无恋 | 来源:发表于2021-08-11 10:04 被阅读0次
        self.webView.allowsBackForwardNavigationGestures = true

没错,就这

private let canGoBackKeyPath = "canGoBack"

webView.addObserver(self, forKeyPath: canGoBackKeyPath, options: .new, context: nil)

open override func observeValue(forKeyPath keyPath: String?,
                                    of object: Any?,
                                    change: [NSKeyValueChangeKey: Any]?,
                                    context: UnsafeMutableRawPointer?) {
        guard let theKeyPath = keyPath, object as? WKWebView == webView else {
            super.observeValue(forKeyPath: keyPath, of: object, change: change, context: context)
            return
        }
        if theKeyPath == canGoBackKeyPath{
            if let newValue = change?[NSKeyValueChangeKey.newKey]{
                let newV = newValue as! Bool
                if newV == true{
                    self.navigationController?.interactivePopGestureRecognizer?.isEnabled = false;
                }else{
                    self.navigationController?.interactivePopGestureRecognizer?.isEnabled = true;

//这是为了处理vc的侧滑手势与webview 手势会有冲突
                }
            }
        }
    }


deinit {
        webView.removeObserver(self, forKeyPath: canGoBackKeyPath, context: nil)
    }

相关文章

网友评论

      本文标题:Swift WKWebView侧滑返回时html逐级返回,而不是

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