Contenuto misto WebView in Android

Download Sample Scaricare l'esempio

Questo tipo di piattaforma Android controlla se un WebView oggetto può visualizzare contenuto misto nelle applicazioni destinate all'API 21 o versione successiva. Il contenuto misto è contenuto caricato inizialmente tramite una connessione HTTPS, ma che carica risorse (ad esempio immagini, audio, video, fogli di stile, script) tramite una connessione HTTP. Viene utilizzata in XAML impostando la WebView.MixedContentMode proprietà associata su un valore dell'enumerazione MixedContentHandling :

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

In alternativa, può essere usato da C# usando l'API Fluent:

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

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

Il WebView.On<Android> metodo specifica che questa specifica della piattaforma verrà eseguita solo in Android. Il WebView.SetMixedContentMode metodo, nello spazio dei Xamarin.Forms.PlatformConfiguration.AndroidSpecific nomi , viene usato per controllare se è possibile visualizzare contenuto misto, con l'enumerazione MixedContentHandling che fornisce tre valori possibili:

  • AlwaysAllow – indica che consentirà a un'origine WebView HTTPS di caricare il contenuto da un'origine HTTP.
  • NeverAllow – indica che l'oggetto non consentirà a un'origine WebView HTTPS di caricare il contenuto da un'origine HTTP.
  • CompatibilityMode – indica che tenterà WebView di essere compatibile con l'approccio del Web browser del dispositivo più recente. Alcuni contenuti HTTP possono essere caricati da un'origine HTTPS e altri tipi di contenuto verranno bloccati. I tipi di contenuto bloccati o consentiti possono cambiare con ogni versione del sistema operativo.

Il risultato è che un valore specificato MixedContentHandling viene applicato a WebView, che controlla se è possibile visualizzare il contenuto misto:

WebView mixed content handling platform-specific