转自:http://460230379.diandian.com/post/2011-08-16/3966668
在开发Android平台的互联网应用时,经常会使用到WebView,好处主要有两个,一是可以更改要展现的内容(包括样式),二是可以实现部分功能的跨平台。
Android的WebView组件使用非常简单,可以使用loadUrl()加载一个Url地址,也可以使用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 。