Partager via


Contenu mixte WebView sur Android

Cette plateforme Android contrôle si un WebView contenu mixte peut être affiché dans des applications qui ciblent l’API 21 ou ultérieure. Le contenu mixte est du contenu initialement chargé sur une connexion HTTPS, mais qui charge des ressources (telles que des images, des images, des vidéos, des feuilles de style, des scripts) via une connexion HTTP. Elle est consommée en XAML en définissant la WebView.MixedContentMode propriété jointe sur une valeur de l’énumération MixedContentHandling :

<ContentPage ...
             xmlns:android="clr-namespace:Xamarin.Forms.PlatformConfiguration.AndroidSpecific;assembly=Xamarin.Forms.Core">
    <WebView ... android:WebView.MixedContentMode="AlwaysAllow" />
</ContentPage>

Elle peut également être consommée à partir de C# à l’aide de l’API Fluent :

using Xamarin.Forms.PlatformConfiguration;
using Xamarin.Forms.PlatformConfiguration.AndroidSpecific;
...

webView.On<Android>().SetMixedContentMode(MixedContentHandling.AlwaysAllow);

La WebView.On<Android> méthode spécifie que cette plateforme spécifique ne s’exécutera que sur Android. La WebView.SetMixedContentMode méthode, dans l’espace Xamarin.Forms.PlatformConfiguration.AndroidSpecific de noms, est utilisée pour contrôler si le contenu mixte peut être affiché, avec l’énumération MixedContentHandling fournissant trois valeurs possibles :

  • AlwaysAllow : indique que l’origine WebView HTTPS permet de charger du contenu à partir d’une origine HTTP.
  • NeverAllow : indique que l’origine WebView HTTPS n’autorise pas le chargement du contenu à partir d’une origine HTTP.
  • CompatibilityMode : indique que la WebView tentative de compatibilité avec l’approche du navigateur web de l’appareil le plus récent. Certains contenus HTTP peuvent être autorisés à être chargés par une origine HTTPS et d’autres types de contenu seront bloqués. Les types de contenu bloqués ou autorisés peuvent changer avec chaque version du système d’exploitation.

Le résultat est qu’une valeur spécifiée MixedContentHandling est appliquée au WebView, qui contrôle si le contenu mixte peut être affiché :

WebView mixed content handling specific platform-specific