zoukankan      html  css  js  c++  java
  • WKWebview 获取网页加载内容的高度

    https://www.jianshu.com/p/aee2cfabaa79

    > 方法一

    - (void)webView:(WKWebView *)webView didFinishNavigation:(WKNavigation *)navigation {

    CGFloat height = 0.0;

        [webView sizeToFit];

        height = webView.scrollView.ContentSize.height;

        CGRect webFrame = webView.frame;

        webFrame.size.height = height;

        webView.frame = webFrame;

    }

    > 方法二

    - (void)webView:(WKWebView *)webView didFinishNavigation:(WKNavigation *)navigation {

    [webView evaluateJavaScript:@"document.body.offsetHeight" completionHandler:^(id data, NSError * _Nullable error) {

      CGFloat height = [data floatValue];

        //ps:js可以是上面所写,也可以是document.body.scrollHeight;在WKWebView中前者offsetHeight获取自己加载的html片段,高度获取是相对准确的,但是若是加载的是原网站内容,用这个获取,会不准确,改用后者之后就可以正常显示,这个情况是我尝试了很多次方法才正常显示的

        CGRect webFrame = webView.frame;

        webFrame.size.height = height;

        webView.frame = webFrame;

    }];

    }

    > 方法三:遍历WKWebView的所有子视图,找到中间的WKContentView,获取到它的frame设定给webView

    - (void)webView:(WKWebView *)webView didFinishNavigation:(WKNavigation *)navigation{

        if(webView.subViews.count > 0) {

        for(UIView *view in webView.subViews) {

              if([view iskindOfClass:NSClassFromString:@"WKContentView"]){

              webView.frame = view.frame;

              }

      }

     
     
    0人点赞
     
    iOS
     
     


    作者:grand_max
    链接:https://www.jianshu.com/p/aee2cfabaa79
    来源:简书
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
  • 相关阅读:
    边缘检测(13)
    图像梯度
    高斯金字塔和拉普拉斯金字塔(十一)
    轮廓发现(16)
    圆检测(15)
    直线检测(14)
    图像腐蚀与图像膨胀(18)
    go语言从例子开始之Example18_1.结构体中定义方法
    go语言从例子开始之Example18.struct结构体
    go语言从例子开始之Example17.指针
  • 原文地址:https://www.cnblogs.com/itlover2013/p/13750947.html
Copyright © 2011-2022 走看看