最近在做一些hybird框架的项目,对于embed的UIWebView,其宽度一般由Native app 指定,对于HTML页面
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
其中若是width指定为device-width,那么embed的UIWebView的宽不应设置小于device-width的值,如ipad的宽为768
在webView中查看HTML页面源代码
- (void)webViewDidFinishLoad:(UIWebView *)webView_ {
NSString *jsToGetHTMLSource = @"document.getElementsByTagName('html')[0].innerHTML";
NSString *HTMLSource = [webView_ stringByEvaluatingJavaScriptFromString:jsToGetHTMLSource];
NSLog(@"%@",HTMLSource);
}
- (void)adjustPageWidth:(UIWebView *)webView_ {
NSString *widthStr = [NSString stringWithFormat:@"%f",webView_.frame.size.width];
NSString * strJS = [NSString stringWithFormat:@"function adjustPageWidth(){var metas = document.getElementsByTagName(\"meta\");var strMeta=new String();var strTemp;for(var i=0;i < metas.length;i++){if(metas[i].name == \"viewport\"){metas[i].setAttribute('content',\"width=%@, initial-scale=1.0, maximum-scale=1.0, user-scalable=no\");console.log(metas[i].name);}}}",widthStr];
[webView_ stringByEvaluatingJavaScriptFromString:strJS];
NSString * strFunctionJS= @"adjustPageWidth();";
[webView_ stringByEvaluatingJavaScriptFromString:strFunctionJS];
}
在webViewDidFinishLoad中调用调整页面宽度函数
- (void)webViewDidFinishLoad:(UIWebView *)webView_ {
DebugLog(@"%@",NSStringFromSelector(_cmd));
[self adjustPageWidth:webView_];
}