在WebView上正确显示HTML内容
2013-02-23 13:35
369 查看
在WebView上显示HTML内容,包括英文以及中文。有3种方法可以有用:
(1)使用loadData方法。
这种方法需要先将HTML内容进行编码,否则显示的中文会有乱码。
编码方法为:
Java代码
private String fmtString(String str){
String notice = "";
try{
notice = URLEncoder.encode(str, "utf-8");
}catch(UnsupportedEncodingException ex){
}
return notice;
}
调用fmtString方法:
Java代码
mWebView.loadData(fmtString(notice1), "text/html", "utf-8");
notice1是自定义的HTML字符串:
Java代码
private String blank = " ";
private String notice1 = "<html><head><meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>" +
"<h3 align='center'>关于关闭电话银行语音系统查询动态密码功能的公告</h3></head>"
+ "<body>"
+ "<p align='center'><i>发布日期:2011-04-25</i>"
+ "</p><p>尊敬的客户:"
+ "</p><p>" + blank +
"根据优化电话银行相关服务功能的整体安排,我行决定自4月25日起,在95595电话银行语音系统中,停止受理查询手机动态密码功能。给您带来的不便之处敬请谅解。如有问题,请致电我行24小时服务热线95595。"
+ "</p><p>" + blank +
"感谢您长期以来对我行的关注、支持与厚爱!"
+ "</p><p>" + blank +
"特此公告。"
+ "</p><p align='right'>中国光大银行"
+ "</p><p align='right'>2011年4月25日</p></body></html>";
(2)使用loadDataWithBaseURL方法。
使用这个方法不需要先将HTML内容进行转码,直接可以显示:
Java代码
mWebView.loadDataWithBaseURL("about:blank", notice1, "text/html", "utf-8", null);
(3)使用loadUrl方法。
使用这个方法的参数可以是网络上的某个网址,例如
Java代码
mWebView.loadUrl("http://www.baidu.com");
也可以是本地的某个文件。这个文件必须存放在assets目录下面:
Java代码
mWebView.loadUrl("file:///android_asset/notice01.html");
以上3种方法可以显示HTML内容在WebView上,但存有区别:
loadData方法显示的HTML都是居左对齐,不管align的值是left|center|right,结果都是居左对齐,并且显示中文的时候必须使用UrlEncoder进行编码。
loadDataWithBaseURL可以使用align属性,即可居左|居中|居右对齐,显示中文不需要UrlEncoder进行编码。
loadUrl显示的内容来自网络上或本地的某个问题。
原文:http://peterfeng.iteye.com/blog/1028881
(1)使用loadData方法。
这种方法需要先将HTML内容进行编码,否则显示的中文会有乱码。
编码方法为:
Java代码
private String fmtString(String str){
String notice = "";
try{
notice = URLEncoder.encode(str, "utf-8");
}catch(UnsupportedEncodingException ex){
}
return notice;
}
调用fmtString方法:
Java代码
mWebView.loadData(fmtString(notice1), "text/html", "utf-8");
notice1是自定义的HTML字符串:
Java代码
private String blank = " ";
private String notice1 = "<html><head><meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>" +
"<h3 align='center'>关于关闭电话银行语音系统查询动态密码功能的公告</h3></head>"
+ "<body>"
+ "<p align='center'><i>发布日期:2011-04-25</i>"
+ "</p><p>尊敬的客户:"
+ "</p><p>" + blank +
"根据优化电话银行相关服务功能的整体安排,我行决定自4月25日起,在95595电话银行语音系统中,停止受理查询手机动态密码功能。给您带来的不便之处敬请谅解。如有问题,请致电我行24小时服务热线95595。"
+ "</p><p>" + blank +
"感谢您长期以来对我行的关注、支持与厚爱!"
+ "</p><p>" + blank +
"特此公告。"
+ "</p><p align='right'>中国光大银行"
+ "</p><p align='right'>2011年4月25日</p></body></html>";
(2)使用loadDataWithBaseURL方法。
使用这个方法不需要先将HTML内容进行转码,直接可以显示:
Java代码
mWebView.loadDataWithBaseURL("about:blank", notice1, "text/html", "utf-8", null);
(3)使用loadUrl方法。
使用这个方法的参数可以是网络上的某个网址,例如
Java代码
mWebView.loadUrl("http://www.baidu.com");
也可以是本地的某个文件。这个文件必须存放在assets目录下面:
Java代码
mWebView.loadUrl("file:///android_asset/notice01.html");
以上3种方法可以显示HTML内容在WebView上,但存有区别:
loadData方法显示的HTML都是居左对齐,不管align的值是left|center|right,结果都是居左对齐,并且显示中文的时候必须使用UrlEncoder进行编码。
loadDataWithBaseURL可以使用align属性,即可居左|居中|居右对齐,显示中文不需要UrlEncoder进行编码。
loadUrl显示的内容来自网络上或本地的某个问题。
原文:http://peterfeng.iteye.com/blog/1028881
相关文章推荐
- 在WebView上正确显示HTML内容
- WebView-显示HTML内容-解决乱码问题
- 在WebView上显示HTML内容
- WebView上显示HTML内容
- android webview中的html代码 @media screen 在低版本系统下显示不正常的解决办法
- 1j2ee的web工程,技术,归根究底,只有:html,JavaScript,后端java类 三种技术2后端参数在最终html中肯定会显式的显示出来,不然参数有什么用,参数即输出内容,就是给用户看的
- SAP F1 window无法显示 确保 Web 地址 mk:@SAPHTML://aOnXs5PpwaQd5%7Dy8rgH500 正确
- WebView加载本地html无法显示CSS样式 。
- 461_划一下才显示WebView内容
- 使用WebView.load(data,"text/html", "utf-8")加载显示乱码问题分析
- 计算 webView 显示内容后实际高度
- webview显示html代码,并设置html中字体的大小,获得webview高度
- webView 中显示 html 的那些事
- WebView 加载数据时显示进度条,加载完后再把进度条取消并显示内容
- iOS WKWebView中显示进度条及HTML的title
- webview加载html内容
- WebView载入本地html(含css资源)显示不全解决办法
- WebView加载html显示空白页面
- iOS 真机上 webview获取html的title无法显示在navigationBar上。title被挤压。解决
- android webView显示html图片比例缩放的效果