WebView.LoadData(String, String, String) Méthode

Définition

Charge les données données données dans ce WebView à l’aide d’une URL de schéma « data ».

[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

Paramètres

data
String

chaîne de données dans l’encodage donné

mimeType
String

type MIME des données, par exemple « text/html ».

encoding
String

encodage des données

Attributs

Remarques

Charge les données données données dans ce WebView à l’aide d’une URL de schéma « data ».

Notez que la même stratégie d’origine de JavaScript signifie que le script en cours d’exécution dans une page chargée à l’aide de cette méthode ne pourra pas accéder au contenu chargé à l’aide d’un schéma autre que les « données », y compris « http(s) ». Pour éviter cette restriction, utilisez-la #loadDataWithBaseURL(String,String,String,String,String) loadDataWithBaseURL() avec une URL de base appropriée.

Le encoding paramètre spécifie si les données sont encodées en base64 ou URL. Si les données sont encodées en base64, la valeur du paramètre d’encodage doit être "base64". Le code HTML peut être encodé comme android.util.Base64#encodeToString(byte[],int) suit :

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");

Pour toutes les autres valeurs de encoding (y compris null) il est supposé que les données utilisent l’encodage ASCII pour les octets à l’intérieur de la plage de caractères d’URL sécurisés et utilisent l’encodage standard %xx hexadécimal des URL pour les octets en dehors de cette plage. Pour plus d’informations, consultez RFC 3986 . Les applications ciblant android.os.Build.VERSION_CODES#Q ou ultérieure doivent utiliser base64 ou encoder des # caractères dans le contenu %23, sinon elles seront traitées comme la fin du contenu et le texte restant utilisé comme identificateur de fragment de document.

Le mimeType paramètre spécifie le format des données. Si WebView ne peut pas gérer le type MIME spécifié, il télécharge les données. Si null, la valeur par défaut est « text/html ».

L’URL du schéma « data » formée par cette méthode utilise l’ensemble de caractères US-ASCII par défaut. Si vous devez définir un autre ensemble de caractères, vous devez former une URL de schéma de données qui spécifie explicitement un paramètre charset dans la partie mediatype de l’URL et appeler #loadUrl(String) à la place. Notez que l’ensemble de caractères obtenu à partir de la partie mediatype d’une URL de données remplace toujours celui spécifié dans le document HTML ou XML lui-même.

Le contenu chargé à l’aide de "null"cette méthode aura la window.origin valeur . Cela ne doit pas être considéré comme une origine approuvée par l’application ou par n’importe quel code JavaScript exécuté à l’intérieur du WebView (par exemple, les sources d’événements dans les gestionnaires d’événements DOM ou les messages web), car le contenu malveillant peut également créer des images avec une origine Null. Si vous devez identifier l’origine du cadre principal de manière fiable, vous devez utiliser #loadDataWithBaseURL(String,String,String,String,String) loadDataWithBaseURL() avec une URL de base HTTP ou HTTPS valide pour définir l’origine.

Documentation Java pour android.webkit.WebView.loadData(java.lang.String, java.lang.String, java.lang.String).

Les parties de cette page sont des modifications basées sur le travail créé et partagé par le projet Android Open Source et utilisés en fonction des termes décrits dans la licence d’attribution Creative Commons 2.5.

S’applique à