android web视图中的baseUrl是什么?

don*_*nhk 10 android webview

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

它们用于什么?

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

Exc*_*ion 11

使用基本URL将HTML加载到WebView中

如果直接加载到Android Web应用程序中的WebView的HTML包含具有相对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);
Run Code Online (Sandbox Code Playgroud)

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

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

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

有关更多信息,请阅读本教程和此stackoverflow答案.