wkwebView高度计算那点事

作者: 南山青稞酒 | 来源:发表于2017-07-17 20:00 被阅读717次

    首先个人认为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的实际高度
                //获取后返回重新布局
                 }];
    }
    

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

    根据使用场景自行选择

    相关文章

      网友评论

        本文标题:wkwebView高度计算那点事

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