iOS WebView加载Html字符串并适应内容高度

最后使用的是UIWebView,解决了两个问题
1:开始使用的WKWebView,发现WKWebView加载的html字符串文字要比正常的小很多,找了几个办法都没有解决,因此只能换成了UIWebView
2:换了后这次文字倒是正常了,但是图片又不能完整显示在WebView里,后来找到JS方法在WebView加载完后调用,才解决
这里贴一下主要代码

- (void)webViewDidFinishLoad:(UIWebView *)webView {
    NSString *js=@"var script = document.createElement('script');"
    "script.type = 'text/javascript';"
    "script.text = \"function ResizeImages() { "
    "var myimg,oldwidth;"
    "var maxwidth = %f;"
    "for(i=0;i <document.images.length;i++){"
    "myimg = document.images[i];"
    "if(myimg.width > maxwidth){"
    "oldwidth = myimg.width;"
    "myimg.width = %f;"
    "}"
    "}"
    "}\";"
    "document.getElementsByTagName('head')[0].appendChild(script);";
    js = [NSString stringWithFormat:js,[UIScreen mainScreen].bounds.size.width,[UIScreen mainScreen].bounds.size.width-15];
    [webView stringByEvaluatingJavaScriptFromString:js];
    [webView stringByEvaluatingJavaScriptFromString:@"ResizeImages();"];

    NSInteger width = [[webView stringByEvaluatingJavaScriptFromString:@"document.body.scrollWidth"] integerValue];
    CGFloat bili = width/ScreenWIDTH;
    NSInteger height = [[webView stringByEvaluatingJavaScriptFromString:@"document.body.scrollHeight"] integerValue];
    [_PolicyWebView mas_updateConstraints:^(MASConstraintMaker *make) {
        make.height.mas_equalTo(height/bili);//更新高度
    }];
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1.ios高性能编程 (1).内层 最小的内层平均值和峰值(2).耗电量 高效的算法和数据结构(3).初始化时...
    欧辰_OSR阅读 30,045评论 8 265
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 13,907评论 1 32
  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明AI阅读 16,060评论 3 119
  • 在二次元世界里,曾跟一个人约定,五年里谁先走,谁是小狗。 那是我大二暑假,在南京实习的一个普通的夜晚。临时拼房的室...
    傻致阅读 1,950评论 0 1
  • 高中毕业以后,你还追过一个人吗?你心动过吗?可是你行动没有。有没有年少时那样天不亮就在她家门口等上学,有没有买好热...
    c小安阅读 4,396评论 0 1

友情链接更多精彩内容