在Android WebView的 loadDataWithBaseURL 方法中,有“baseUrl”和“historyUrl”。
它们用于什么?
我已经阅读了android文档,但仍然不知道它们是什么。
答案 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中。