wkwebView高度计算那点事

首先个人认为WKWebView 无论在各方面都优于WebView,所以文本介绍的是WKWebView的高度获取,当然了,改一改是可以用在WebView中的。

场景

场景1 :商品详情 (webView 在中间)

场景2 :主题详情 (webView 在头部)

场景3 :商品详情 (webView 在尾部)

以上三种场景是开发中我们常会遇到的,这里涉及到一个webView内容高度获取的问题,对于这个问题要思考的有以下几种情况:

  1. 网页中图片过大,导致加载缓慢
  2. 网页中有按钮可以改变webView的内容高度
  3. 内容一点一点加载 or 内容加载完后再展示

以上的情况根据产品需求来取舍。

获取高度的方式有两种:

  • 监听WKWebView中scrollView 的contentSize的变化
  • WkWebView内容加载完毕再获取高度(推荐

监听的方法:
iOS【终极方案】精准获取webView内容高度,自适应高度
看这个就好了,但是我没有用,因为webView内容过多会造成tableView 频繁刷新。

加载完再获取高度:

遵守协议WKNavigationDelegate

        yourWebView.navigationDelegate = self;

- (void)webView:(WKWebView *)webView didFinishNavigation:(WKNavigation *)navigation {
    self.webView.scrollView.scrollEnabled = NO;
    [webView evaluateJavaScript:@"document.body.scrollHeight"
              completionHandler:^(id result, NSError *_Nullable error) {
               
            //result 就是加载完成后 webView的实际高度
            //获取后返回重新布局
             }];
}

第二种会使等待时间过长。

根据使用场景自行选择

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,812评论 25 709
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,305评论 4 61
  • 前言 关于UIWebView的介绍,相信看过上文的小伙伴们,已经大概清楚了吧,如果有问题,欢迎提问。 本文是本系列...
    CoderLF阅读 9,096评论 2 12
  • 虽然WKWebView是在Apple的WWDC 2014随iOS 8和OS X 10.10出来的,是为了解决UIW...
    winann阅读 136,493评论 195 641
  • 白月光淡淡透过西窗洒满纸张 白月光寂静地忧伤写不尽悲凉 白月光摇落一地念想道不尽悲伤 白月光流转千年芬芳流不尽凄凉...
    柳尘微阅读 543评论 2 2