Android webview的loadData和loadDataWithBaseURL之间有什么区别

onm*_*133 5 methods android load webview

Android webview有两种加载数据的方法

public void loadData (String data, String mimeType, String encoding)
Run Code Online (Sandbox Code Playgroud)

请注意,JavaScript的相同原始策略意味着在使用此方法加载的页面中运行的脚本将无法访问使用"数据"以外的任何方案加载的内容,包括"http(s)".要避免此限制,请将loadDataWithBaseURL()与适当的基本URL一起使用.

public void loadDataWithBaseURL (String baseUrl, String data, String mimeType, String encoding, String historyUrl)
Run Code Online (Sandbox Code Playgroud)

请注意,仅当baseUrl指定除"http","https","ftp","ftps","about"或"javascript"以外的方案时,以这种方式指定的内容才能访问本地设备文件(通过"文件"方案URL) ".

我不知道这两句话意味着什么,何时在两者之间进行选择?

提前致谢

Nix*_*tel 10

public void loadData (String data, String mimeType, String encoding)
Run Code Online (Sandbox Code Playgroud)

在这里我们传递HTML,mimeType和编码

在哪里呢

public void loadDataWithBaseURL (String baseUrl, String data, String mimeType, String encoding, String historyUrl)
Run Code Online (Sandbox Code Playgroud)

其中baseUrl可以是基本URL,例如资产文件夹的路径,SDCard或任何其他路径,您的图像或其他媒体所在的路径与您的html相关,我不太了解historyUrl

符合.的文件 [loadData][1]

请注意,JavaScript的相同原始策略意味着在使用此方法加载的页面中运行的脚本将无法访问使用"数据"以外的任何方案加载的内容,包括"http(s)".要避免此限制,请使用loadDataWithBaseURL()适当的基本URL.

means loaddata将仅包含第一个参数中的部分.

请注意,仅当baseUrl指定除"http","https","ftp","ftps","about"或"javascript"以外的方案时,以这种方式指定的内容才能访问本地设备文件(通过"文件"方案URL) ".

上面的简单含义是你可以通过传递baseUrl从http和...中访问数据

例如我写的HTML需要大量的图像来自我的ftp或其他地方,我会做的是通过我的ftp的url在baseURl参数中,我可以访问我的图像