UIWebView的常见问题#
UIWebView是主要用于加载我们的网页数据,经常我们会使用Web展示一些图文混排的信息,因此有时候我们会加载一些html语言(JS),但是在这个过程中会出现一些问题,现在总结一些常见问题分享给大家,希望帮助伙伴们开发。
#######问题1:UIWebView底部默认有一条黑线,怎么去除?########
错误样式:
原因:没有设置UIWebView的不透明度
解决办法:创建WebView的时候设置属性
self.webView.backgroundColor = [UIColor clearColor];
self.webView.opaque = NO;
#######问题2:UIWebView加载html图片自动适配屏幕尺寸大小?########
错误样式:html加载的图片不能适配屏幕尺寸的大小
原因:加载的html中没有设置图片自动适应屏幕的宽度,所以需要我们编写图片自动适应的html代码增加到网页中
解决办法1:增加JS代码到要加载的html中,传入加载的html,返回增加图片自动适应的html,然后通过webView加载html - (void)loadHTMLString:(NSString *)string baseURL:(nullable NSURL *)baseURL;
+ (NSString *)htmlImageAutoMatchingScreen:(NSString *)htmlString
{
NSString *js_code = @" <script type='text/javascript'>"
"window.onload = function(){\n"
"var $img = document.getElementsByTagName('img');\n"
"for(var p in $img){\n"
"$img[p].style.width = '100%%';\n"
"$img[p].style.height ='auto'\n"
"}\n"
"}"
"</script>";
htmlString = [htmlString stringByAppendingString:js_code];
return htmlString;
}
解决办法2:增加html的到整个需要加载的html中
+ (NSString *)autoResizeHtml:(NSString *)html
{
NSString *head = @"<!DOCTYPE html><html><head><style>img{width:100%;height:auto;}</style><meta name=\"apple-mobile-web-app-capable\" content=\"yes\" /></head>";
NSString *foot = @"</html>";
NSMutableString *s = [NSMutableString stringWithFormat:@"%@<body>%@</body>%@",head,html,foot];
return s;
}
以上两种方式都可以解决文字,我个人喜欢第一种方式
#######问题3:UIWebView加载html文字自动适配屏幕尺寸大小?########
错误样式:有时候我们html设置的文字在iOS端显示不能适配屏幕,所以需要一定的处理
解决办法:修改文字的百分比
[webView stringByEvaluatingJavaScriptFromString:@"document.getElementsByTagName('body')[0].style.webkitTextSizeAdjust= '100%'"];//修改百分比即