美文网首页
WKWebView的一些小操作

WKWebView的一些小操作

作者: MeteorCode | 来源:发表于2019-05-06 16:31 被阅读0次

    网页禁止缩放

    有两种方法:

    • 利用UIScrollViewDelegate方法
    webView.scrollView.delegate = self
    
     func viewForZooming(in scrollView: UIScrollView) -> UIView? {
       return nil
     }
    

    这种方法,有时候是不起作用的,而且在有输入弹框的h5,弹框不会随着键盘上下移动。

    • 往h5中,写入适配的js代码
     func webView(_ webView: WKWebView, didCommit navigation: WKNavigation!) {
        //禁止缩放
       let javascript = "var meta = document.createElement('meta');meta.setAttribute('name', 'viewport');meta.setAttribute('content', 'width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no');document.getElementsByTagName('head')[0].appendChild(meta);"
       webView.evaluateJavaScript(javascript, completionHandler: nil)
     }
    

    加载进度条

    添加KVO,监听网页加载的速度,key为estimatedProgress

    webView.addObserver(self, forKeyPath: "estimatedProgress", options: .new, context: nil)
    
     override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) {
       if keyPath == "estimatedProgress" {
          progressView.progress = Float(webView.estimatedProgress)
       }
     }
    

    移除KVO

     deinit {
       webView.removeObserver(self, forKeyPath: "estimatedProgress")
    }
    
    网页进度条.GIF

    记录在demo中 网页进度条显示demo

    相关文章

      网友评论

          本文标题:WKWebView的一些小操作

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