WebView Mixed Content für Android

Beispiel herunterladen Das Beispiel herunterladen

Diese Android-plattformspezifische Steuerung steuert, ob gemischte WebView Inhalte in Anwendungen mit API 21 oder höher angezeigt werden können. Gemischter Inhalt ist Inhalt, der zunächst über eine HTTPS-Verbindung geladen wird, aber Ressourcen (z. B. Bilder, Audio, Video, Stylesheets, Skripts) über eine HTTP-Verbindung lädt. Es wird in XAML verwendet, indem die WebView.MixedContentMode angefügte Eigenschaft auf einen Wert der MixedContentHandling Enumeration festgelegt wird:

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

Alternativ kann sie über C# mit der Fluent-API genutzt werden:

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

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

Die WebView.On<Android> -Methode gibt an, dass diese plattformspezifische Version nur unter Android ausgeführt wird. Die WebView.SetMixedContentMode -Methode im Xamarin.Forms.PlatformConfiguration.AndroidSpecific Namespace wird verwendet, um zu steuern, ob gemischte Inhalte angezeigt werden können, wobei die MixedContentHandling Enumeration drei mögliche Werte bereitstellt:

  • AlwaysAllow – gibt an, dass ein WebView HTTPS-Ursprung Inhalte aus einem HTTP-Ursprung lädt.
  • NeverAllow – gibt an, dass es WebView einem HTTPS-Ursprung nicht zulässt, Inhalte aus einem HTTP-Ursprung zu laden.
  • CompatibilityMode – gibt an, dass versucht WebView wird, mit dem Ansatz des neuesten Gerätewebbrowsers kompatibel zu sein. Einige HTTP-Inhalte dürfen möglicherweise von einem HTTPS-Ursprung geladen werden, und andere Arten von Inhalten werden blockiert. Die Arten von Inhalten, die blockiert oder zulässig sind, können sich mit jedem Betriebssystemrelease ändern.

Das Ergebnis ist, dass ein angegebener MixedContentHandling Wert auf den angewendet wird, der WebViewsteuert, ob gemischte Inhalte angezeigt werden können:

WebView Mixed Content Handling Plattform-spezifische WebView