WebView.LoadData(String, String, String) 方法

定义

使用“数据”方案 URL 将给定数据加载到此 WebView 中。

[Android.Runtime.Register("loadData", "(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V", "GetLoadData_Ljava_lang_String_Ljava_lang_String_Ljava_lang_String_Handler")]
public virtual void LoadData(string data, string? mimeType, string? encoding);
[<Android.Runtime.Register("loadData", "(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V", "GetLoadData_Ljava_lang_String_Ljava_lang_String_Ljava_lang_String_Handler")>]
abstract member LoadData : string * string * string -> unit
override this.LoadData : string * string * string -> unit

参数

data
String

给定编码中的数据字符串

mimeType
String

数据的 MIME 类型,例如“text/html”。

encoding
String

数据的编码

属性

注解

使用“数据”方案 URL 将给定数据加载到此 WebView 中。

请注意,JavaScript 的同一源策略意味着使用此方法加载的页面中运行的脚本无法访问使用“数据”以外的任何方案加载的内容,包括“http(s)”。 若要避免此限制,请使用 #loadDataWithBaseURL(String,String,String,String,String) loadDataWithBaseURL() 适当的基 URL。

encoding 参数指定数据是 base64 还是 URL 编码。 如果数据是 base64 编码的,则编码参数的值必须为 "base64"。 可以使用以下代码对 HTML 进行 android.util.Base64#encodeToString(byte[],int) 编码:

String unencodedHtml =
                "&lt;html&gt;&lt;body&gt;'%28' is the code for '('&lt;/body&gt;&lt;/html&gt;";
            String encodedHtml = Base64.encodeToString(unencodedHtml.getBytes(), Base64.NO_PADDING);
            webView.loadData(encodedHtml, "text/html", "base64");

对于(包括null)的所有其他值encoding,假定数据对安全 URL 字符范围内的八进制数使用 ASCII 编码,并使用标准 %xx 十六进制编码的 URL,以用于该范围之外的八进制数。 有关详细信息 ,请参阅 RFC 3986 。 面向android.os.Build.VERSION_CODES#Q或更高版本的应用程序必须使用 base64 或对内容%23中的任何#字符进行编码,否则它们将被视为内容的末尾和用作文档片段标识符的剩余文本。

mimeType 参数指定数据的格式。 如果 WebView 无法处理指定的 MIME 类型,它将下载数据。 如果 null为“text/html”,则默认为“text/html”。

此方法形成的“data”方案 URL 使用默认 US-ASCII 字符集。 如果需要设置不同的字符集,则应形成一个“data”方案 URL,该 URL 在 URL 的媒体类型部分中显式指定字符集参数,并改为调用 #loadUrl(String) 。 请注意,从数据 URL 的媒体类型部分获取的字符集始终替代 HTML 或 XML 文档本身中指定的字符集。

使用此方法加载的内容的 window.origin 值为 "null". 这不能被视为应用程序或 WebView 中运行的任何 JavaScript 代码(例如 DOM 事件处理程序或 Web 消息中的事件源),因为恶意内容还可以创建具有 null 源的帧。 如果需要以可信的方式标识主帧的源,则应使用 #loadDataWithBaseURL(String,String,String,String,String) loadDataWithBaseURL() 有效的 HTTP 或 HTTPS 基 URL 来设置源。

Java文档android.webkit.WebView.loadData(java.lang.String, java.lang.String, java.lang.String)

本页的某些部分是根据 创建和共享的工作进行的修改,并根据 许可证中所述的条款使用。

适用于