android 网络视图中的 baseUrl 是什么?

What is baseUrl in android web view?

loadDataWithBaseURL 方法中 Android WebView,有 "baseUrl" 和 "historyUrl".

它们的用途是什么?

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

加载 HTML 到具有基础的 WebView URL

如果您直接加载到 Android 网络应用的 WebView 中的 HTML 包含相对 URL 的链接,则这些链接可能无法正常工作。当您将 HTML 直接加载到 WebView 时,HTML 没有基础 URL 来解释相对的 URL。 Android WebView 组件有一个解决方案。

您可以将 HTML 直接加载到具有基础 URL 的 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 参数是基础 URL,加载的 HTML 中的所有相关 URL 都是从中解释的。

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

有关详细信息,请阅读此 tutorial and this Whosebug answer

android 文档说了什么:

Loads the given data into this WebView, using baseUrl as the base URL for the content.