UIWebView加载Html

Author Avatar
新风作浪 5月 03, 2015
  • 在其它设备中阅读本文章

UIWebView加载html分两种方式

加载本地html

1
2
3
NSString *htmlFile = [[NSBundle mainBundle] pathForResource:@"xxx" ofType:@"html"];
NSString* htmlString = [NSString stringWithContentsOfFile:htmlFile encoding:NSUTF8StringEncoding error:nil];
[webView loadHTMLString:htmlString baseURL:nil];

本地加载可以修改html显示的文本大小和字体

1
2
3
4
5
6
7
8
9
NSString* formatString = [NSString stringWithFormat:
@"<html>"
"<style type=\"text/css\">"
"body {background-color:transparent; font-family:helvetica; font-size:%@; color:%@;}"
"</style>"
"<body>"
"<p>%@</p>"
"</body></html>",@"24",@"#000000", html];
[webView loadHTMLString:formatString baseURL:nil];
  • background-color:transparent; 背景颜色(透明)
  • font-family:helvetica; 字体
  • font-size:24; 字体大小
  • color:#000fff; 字体的颜色

如果发现本地html在UIWebView加载不出来,请检查html代码编码格式,一般来说都采用的时UTF8编码格式。

加载一个网页

NSURL *url = [NSURLV URLWithString:@"http://duxinfeng.com"];
NSURLRequest *req = [NSURLRequest requestWithURL:url];
[webView loadRequest:req];

如果对html排版有特殊要求,则需要自己或前端写好css文件,可以放本地,也可以加到html文件里面,如果放到本地需要注意路径,当我把css文件放在和xx.xcodeproj 一个目录时是这样的

[webView loadHTMLString:htmlString baseURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] bundlePath]]];

如果是放到html里面可以参考网易新闻开源组件(view-source:http://m.163.com/special/newsclient/ios_libraries.html) chrome打开,或者直接访问查看源码

UIWebView 高亮显示问题

UIWebView 是可以监测html里的数字、电话号码、url链接,然后高亮显示,可以通过设置他的dataDetectorTypes属性来改变

self.webView.dataDetectorTypes = UIDataDetectorTypeNone;