Android WebView 加载网页

浏览:
字体:
发布时间:2013-12-12 14:51:02
来源:

在开发Android平台的互联网应用时,经常会使用到WebView,好处主要有两个,一是可以更改要展现的内容(包括样式),二是可以实现部分功能的跨平台,下面我介绍几种常用写法和区别,如下:

1.加载html代码方式有loadData()和loadDataWithBaseURL():

loadData()或loadDataWithBaseURL()加载一段HTML代码片段。loadUrl()的使用大家应该都没有什么问题,但是loadData()和loadDataWithBaseURL()在使用上的差异可能有些人还不太清楚。

首先,从方法的定义来看:

public void loadData (String data, String mimeType, String encoding) public void loadDataWithBaseURL (String baseUrl, String data, String mimeType, String encoding, String historyUrl)

loadDataWithBaseURL()比loadData()多两个参数,可以指定HTML代码片段中相关资源的相对根路径,也可以指定历史Url。两个方法的其余三个参数相同。

其次,两个方法加载的HTML代码片段有些不同,loadData()中的html data中不能包含'#', '%', '/', '?'四中特殊字符,这就为我们内嵌css等制造了些许麻烦,因为css中经常用'#', '%'等字符,需要如何处理呢?我们需要用UrlEncoder编码为%23, %25, %27, %3f 。

loadDataWithBaseURL代码例子如下写法:

StringBuilder data = new StringBuilder("");	    	int size = paperList.size();	    	for(int i = 0;i < size;i++){	    		if(!StringUtils.isEmpty(paperList.get(i).getFilePath())){	    			data.append("
").append("").append("

"); } data.append("
").append(""+paperList.get(i).getContent()+"").append("


"); } data.append("");preWebView.loadDataWithBaseURL("", data, "text/html", "UTF-8","");
/**     * 显示本地图片和文字混合的Html内容     */    private void localHtmlImage() {       try {         String data = "在模拟器 2.1 上测试,这是file:///android_asset/igg.jpg/"/>APK里的图片";         // SDK1.5本地文件处理(不能显示图片)         //MyWebView.loadData(URLEncoder.encode(data, encoding), mimeType, encoding);         // SDK1.6及以后版本         //MyWebView.loadData(data, mimeType, encoding);         // 本地文件处理(能显示图片)         MyWebView.loadDataWithBaseURL(null, data, mimeType, encoding, null);       } catch (Exception ex) {         ex.printStackTrace();       }     }   


2.加载本地html文件代码方式有loadUrl():

/**     * 显示本地图片文件     */    private void localImage() {       try {         // 本地文件处理         String str = "file:///android_asset/icon.png";         MyWebView.loadUrl(str);       } catch (Exception ex) {         ex.printStackTrace();       }     }       /**     * 显示本地网页文件     */    private void localHtml() {       try {         // 本地文件处理(如果文件名中有空格需要用+来替代)         MyWebView.loadUrl("file:///android_asset/test.html");       } catch (Exception ex) {         ex.printStackTrace();       }     }   

3.加载在线网页html代码方式有loadUrl():

/**     * 直接网页显示     */    private void webHtml() {         try {         MyWebView.loadUrl("http://www.google.com");       } catch (Exception ex) {         ex.printStackTrace();       }     }       /**     * 直接网络图片显示     */    private void webImage() {       try {         MyWebView .loadUrl("http://www.google.com.hk/intl/zh-CN/images/logo_cn.gif");       } catch (Exception ex) {         ex.printStackTrace();       }     }   



>更多相关文章
24小时热门资讯
24小时回复排行
资讯 | QQ | 安全 | 编程 | 数据库 | 系统 | 网络 | 考试 | 站长 | 关于东联 | 安全雇佣 | 搞笑视频大全 | 微信学院 | 视频课程 |
关于我们 | 联系我们 | 广告服务 | 免责申明 | 作品发布 | 网站地图 | 官方微博 | 技术培训
Copyright © 2007 - 2024 Vm888.Com. All Rights Reserved
粤公网安备 44060402001498号 粤ICP备19097316号 请遵循相关法律法规
');})();