最近项目中,有一个模块,需要大量的图表。而且产品明确表明,图表只有一个要求,就是要好看,座椅使用原生控件,画的话,费时费力不说,还不一定好看。所以呢,我们就用了ECharts插件,iOS直接使用webView调用H5界面。产品的需求是在不同的屏幕上展示的图表要和谐(重点是好看),所以喽,这就导致了,我们要在调用html链接生成之前,要把不同屏幕所要展示的WebView的高度传入链接中。在实际的展示中发现一个问题,恩,这个问题一会再说。现在先说说获取实际内容高度
1. WKWebView
现在很多应用都从iOS 8开始支持了,所以终于可以肆无忌惮的使用WKWebView了。在WKWebView使用过程中,获取实际内容高度,在界面加载完成时,调用
- (void)webView:(WKWebView *)webView didFinishNavigation:(WKNavigation *)navigation
{
[webView evaluateJavaScript:@"document.body.offsetHeight"completionHandler:^(id_Nullable result,NSError *_Nullable error) {
CGFloat documentHeight = [resultdoubleValue];
CGRect frame = webView.frame;
frame.size.height = documentHeight;
webView.frame = frame;
NSLog(@"webView.f