- (void)webViewDidFinishLoad:(UIWebView *)webView
{
if (_isloadingFinish) {
[self.YYWebView setHidden:NO];
}else{
// NSString *js_fit_code = [NSString stringWithFormat:@"var meta = document.createElement('meta');"
// "meta.name = 'viewport';"
// "meta.content = 'width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=yes';"
// "document.getElementsByTagName('head')[0].appendChild(meta);"];
//js获取body宽度
NSString *bodyWidth= [webView stringByEvaluatingJavaScriptFromString: @"document.body.scrollWidth "];
int widthOfBody = [bodyWidth intValue];
//获取实际要显示的html
NSString *html = [self htmlAdjustWithPageWidth:widthOfBody
html:self.dataDcit[@"content"]
webView:webView];
//设置为已经加载完成
_isloadingFinish = YES;
//加载实际要现实的html
[self.YYWebView loadHTMLString:html baseURL:nil];
}
}
//获取宽度已经适配于webView的html。这里的原始html也可以通过js从webView里获取
- (NSString *)htmlAdjustWithPageWidth:(CGFloat )pageWidth
html:(NSString *)html
webView:(UIWebView *)webView
{
NSMutableString *str = [NSMutableString stringWithString:html];
//计算要缩放的比例
CGFloat initialScale = webView.frame.size.width/pageWidth;
//将</head>替换为meta+head
NSString *stringForReplace = [NSString stringWithFormat:@"<meta name=\"viewport\" content=\" initial-scale=%f, minimum-scale=0.1, maximum-scale=2.0, user-scalable=yes\"></head>",initialScale];
NSRange range = NSMakeRange(0, str.length);
//替换
[str replaceOccurrencesOfString:@"</head>" withString:stringForReplace options:NSLiteralSearch range:range];
return str;
}
高度: 1 NSString *height_str= [webView stringByEvaluatingJavaScriptFromString: @"document.body.offsetHeight"];
- int height = [height_str intValue];