WebView.LoadData(String, String, String) Метод

Определение

Загружает данные в этот WebView с помощью URL-адреса схемы "данные".

[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

кодировка данных

Атрибуты

Комментарии

Загружает данные в этот WebView с помощью URL-адреса схемы "данные".

Обратите внимание, что политика происхождения 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");

Для всех остальных значений encoding (включая null) предполагается, что данные используют кодировку ASCII для октетов в диапазоне безопасных символов URL-адресов и используют стандартную %xx шестнадцатеричную кодировку URL-адресов для октетов за пределами этого диапазона. Дополнительные сведения см. в RFC 3986 . Приложения, предназначенные android.os.Build.VERSION_CODES#Q или более поздней версии, должны использовать base64 или кодировать любые # символы в содержимом, как %23, в противном случае они будут рассматриваться как конец содержимого и оставшийся текст, используемый в качестве идентификатора фрагмента документа.

Параметр mimeType задает формат данных. Если WebView не может обрабатывать указанный тип MIME, он скачивает данные. Если nullзначение по умолчанию — text/html.

URL-адрес схемы данных, сформированный этим методом, использует US-ASCII charset по умолчанию. Если необходимо задать другой набор символов, следует сформировать URL-адрес схемы data, который явно указывает параметр charset в части URL-адреса и вызова #loadUrl(String) . Обратите внимание, что набор символов, полученный из части URL-адреса данных, всегда переопределяет, указанный в самом HTML-документе или XML.

Содержимое, загруженное с помощью этого метода, будет иметь window.origin значение "null". Это не должно считаться доверенным источником приложения или любым кодом JavaScript, работающим внутри WebView (например, источниками событий в обработчиках событий DOM или веб-сообщениях), так как вредоносное содержимое также может создавать кадры с пустым источником. Если необходимо определить источник основного кадра надежным способом, следует использовать #loadDataWithBaseURL(String,String,String,String,String) loadDataWithBaseURL() с допустимым базовым URL-адресом HTTP или HTTPS, чтобы задать источник.

Java документации по android.webkit.WebView.loadData(java.lang.String, java.lang.String, java.lang.String).

Части этой страницы — это изменения на основе работы, созданной и общей Project и используемых в соответствии с условиями, описанными в разделе "".

Применяется к