android web视图中的baseUrl是什么?

时间:2015-03-31 05:03:12

标签: android webview

在Android WebView的 loadDataWithBaseURL 方法中,有“baseUrl”和“historyUrl”。

它们用于什么?

我已经阅读了android文档,但仍然不知道它们是什么。

2 个答案:

答案 0 :(得分:10)

将HTML加载到具有基本URL的WebView

如果直接加载到Android网络应用中的WebView的HTML包含带有相对网址的链接,则这些链接可能无法正常工作。将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个参数。 data参数是要加载到WebView中的HTML。 mimeType是加载到WebView中的数据的mime类型(在此示例中为text / html)。编码是数据的二进制编码(在此示例中为UTF-8)。注意:我尝试使用UTF-16作为编码,但WebView中显示的内容看起来很奇怪(如亚洲字符)。

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

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

有关详情,请参阅此tutorial和此stackoverflow answer

答案 1 :(得分:0)

android文档说的是什么:

  

使用baseUrl作为内容的基本URL,将给定数据加载到此WebView中。