2015-03-31 122 views

回答

7

加载HTML进入一个网页视图与基础URL

如果直接加载到WebView中的HTML在你的Android网络应用包含相对URL链接,那么这些链接可能无法正常工作。当您直接将HTML加载到WebView中时,HTML没有用于解释相对URL的基本URL。 Android WebView组件为此提供了一个解决方案。

您可以使用基本URL直接将HTML加载到WebView中。然后使用该基本URL来解析HTML中的所有相对URL。要使用基本URL加载HTML,您必须使用loadDataWithBaseURL()方法。这里是WebView loadDataWithBaseURL()示例:

String baseUrl = "http://tutorials.jenkov.com"; 
String data  = "Relative Link"; 
String mimeType = "text/html"; 
String encoding = "UTF-8"; 
String historyUrl = "http://tutorials.jenkov.com/jquery/index.html"; 
webView.loadDataWithBaseURL(baseUrl, data, mimeType, encoding, historyUrl); 

loadDataWithBaseURL()方法需要5个参数。数据参数是要加载到WebView中的HTML。 mimeType是加载到WebView中的数据的MIME类型(在本示例中为text/html)。编码是数据的二进制编码(在本例中为UTF-8)。注意:我尝试使用UTF-16作为编码,但在WebView中显示的内容看起来很奇怪(如亚洲字符)。

baseUrl参数是从中解释加载的HTML中的所有相对URL的基本URL。

historyUrl参数是要写入加载到WebView中的HTML的WebView内部导航历史记录的URL。如果用户从加载的HTML导航到另一个页面,然后单击“后退”按钮,则WebView将导航回该URL。由于浏览WebView的历史记录不会将您带到加载的HTML,而是转到historyUrl参数中指定的URL(或about,如果historyUrl设置为null,则为空白),因此您可能必须拦截加载此URL。

欲了解更多信息,请通过此tutorial和这stackoverflow answer

+0

谢谢。这很清楚 – dondonhk 2015-03-31 07:05:35

0

什么的android文件说:

给定的数据加载到该WebView中,使用的baseUrl为基准URL的内容。