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
    来源:简书
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
  • 相关阅读:
    CentOS7.4 chrony时间同步服务器部署(替代NTPD)
    Zabbix Agent for Windows部署(五)
    Zabbix3.4.5部署安装(二)
    Zabbix概术及基础介绍(一)
    修改zabbix为中文,并解决乱码问题(三)
    ZABBIX 3.4 监控Nginx 状态(七)
    PXE+Kickstart 全自动安装部署CentOS7.4
    Zabbix Agent for Linux部署(四)
    不能在 DropDownList 中选择多个项 原因分析及解决方法
    IE浏览器下的CSS问题
  • 原文地址:https://www.cnblogs.com/itlover2013/p/13750947.html
Copyright © 2011-2022 走看看