Contenido mixto de WebView en Android
Esta característica específica de la plataforma Android controla si un elemento WebView
puede mostrar contenido mixto en aplicaciones destinadas a la API 21 o versiones posteriores. El contenido mixto es contenido que se carga inicialmente a través de una conexión HTTPS, pero que carga recursos (como imágenes, audio, vídeo, hojas de estilos, scripts) a través de una conexión HTTP. Se consume en XAML estableciendo la propiedad adjunta WebView.MixedContentMode
en un valor de la enumeración MixedContentHandling
:
<ContentPage ...
xmlns:android="clr-namespace:Xamarin.Forms.PlatformConfiguration.AndroidSpecific;assembly=Xamarin.Forms.Core">
<WebView ... android:WebView.MixedContentMode="AlwaysAllow" />
</ContentPage>
Como alternativa, se puede consumir desde C# mediante la API fluida:
using Xamarin.Forms.PlatformConfiguration;
using Xamarin.Forms.PlatformConfiguration.AndroidSpecific;
...
webView.On<Android>().SetMixedContentMode(MixedContentHandling.AlwaysAllow);
El método WebView.On<Android>
especifica que esta plataforma específica solo se ejecutará en Android. El método WebView.SetMixedContentMode
, en el espacio de nombres Xamarin.Forms.PlatformConfiguration.AndroidSpecific
, se usa para controlar si se puede mostrar contenido mixto, con la enumeración MixedContentHandling
que proporciona tres valores posibles:
AlwaysAllow
: indica queWebView
permitirá que un origen HTTPS cargue contenido desde un origen HTTP.NeverAllow
: indica queWebView
no permitirá que un origen HTTPS cargue contenido desde un origen HTTP.CompatibilityMode
: indica queWebView
intentará ser compatible con el enfoque del explorador web del dispositivo más reciente. Se puede permitir que un origen HTTPS cargue contenido HTTP y otros tipos de contenido se bloquearán. Los tipos de contenido bloqueados o permitidos pueden cambiar con cada versión del sistema operativo.
El resultado es que se aplica un valor MixedContentHandling
especificado a WebView
, que controla si se puede mostrar contenido mixto: