Sdílet prostřednictvím


Smíšený obsah WebView v Androidu

Tato platforma pro Android určuje, jestli WebView se dá zobrazit smíšený obsah v aplikacích, které cílí na rozhraní API 21 nebo vyšší. Smíšený obsah je obsah, který se původně načítá přes připojení HTTPS, ale načítá prostředky (například obrázky, zvuk, video, šablony stylů, skripty) přes připojení HTTP. Využívá se v XAML nastavením WebView.MixedContentMode připojené vlastnosti na hodnotu výčtu MixedContentHandling :

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

Alternativně ho můžete využívat z jazyka C# pomocí rozhraní FLUENT API:

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

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

Metoda WebView.On<Android> určuje, že tato konkrétní platforma se bude spouštět pouze v Androidu. Metoda WebView.SetMixedContentMode v Xamarin.Forms.PlatformConfiguration.AndroidSpecific oboru názvů slouží k řízení, zda se dá zobrazit smíšený obsah, a výčet MixedContentHandling poskytuje tři možné hodnoty:

  • AlwaysAllow – označuje, že WebView umožní zdroji HTTPS načíst obsah z původu HTTP.
  • NeverAllow – označuje, že WebView nepovolí zdroj HTTPS načíst obsah z původu HTTP.
  • CompatibilityMode – označuje, že WebView se pokusí být kompatibilní s přístupem nejnovějšího webového prohlížeče zařízení. Některé obsahy HTTP mohou být načteny původem HTTPS a jiné typy obsahu budou blokovány. Typy obsahu, které jsou blokované nebo povolené, se můžou u každé verze operačního systému změnit.

Výsledkem je, že se na zadanou MixedContentHandling hodnotu použije WebView, která určuje, jestli se dá zobrazit smíšený obsah:

Hybridní zpracování obsahu pro WebView specifické pro konkrétní platformu