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
    来源:简书
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
  • 相关阅读:
    了解教育网访问情况
    .NET开源社区存在的问题
    欢迎大家谈谈Windows Live Mail desktop的使用感受
    [公告]新版排行榜页面发布
    国外技术新闻[来自Digg.com]
    首页小改进
    [SQL Server 2005]String or binary data would be truncated
    Linux获得真正3D桌面 开源支持者喜不自禁
    新版 .net开发必备10大工具
    使用新类型Nullable处理数据库表中null字段
  • 原文地址:https://www.cnblogs.com/itlover2013/p/13750947.html
Copyright © 2011-2022 走看看