美文网首页
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