前几天在app中嵌入一个h5页面的时候, 要求webview的frame等于webview的滚动区域, 所以要实时计算webview中所有内容的高度, 最后才能给webview.height 赋值. 但在实际工作中发现, h5 中的字体一直显示太小, 而且在获取webview可滚动区域的时候获取到的值一直不对
最后的最后, 研究了一天的js , 终于解决了这个问题, 原因是h5页面中缺少了meta标签, 加上之后就可以了 . meta标签代码如下:
meta 标签
另附wkwebview 获取内容高度的代码 :
这个有好多种方法, 在此就不一一列举了, 下面是一个我觉得最简单的方法:
-(void)webView:(WKWebView *)webView didFinishNavigation:(null_unspecified WKNavigation *)navigation{
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
CGFloat height = 0.0;
[webView sizeToFit];
height = webView.scrollView.contentSize.height;
CGRect webFrame = webView.frame;
webFrame.size.height = height;
webView.frame = webFrame;
self.headerView.height = webView.height + webView.y;
[self.tableView reloadData];
});
}