Compartilhar via


Conteúdo misto do WebView no Android

Essa plataforma Android específica controla se um WebView pode exibir conteúdo misto em aplicativos destinados à API 21 ou superior. Conteúdo misto é o conteúdo que é inicialmente carregado através de uma conexão HTTPS, mas que carrega recursos (como imagens, áudio, vídeo, folhas de estilo, scripts) através de uma conexão HTTP. Ele é consumido em XAML definindo a propriedade anexada WebView.MixedContentMode como um valor da MixedContentHandling enumeração:

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

Como alternativa, ele pode ser consumido do C# usando a API fluente:

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

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

O WebView.On<Android> método especifica que essa plataforma específica só será executada no Android. O WebView.SetMixedContentMode método, no namespace, é usado para controlar se o Xamarin.Forms.PlatformConfiguration.AndroidSpecific conteúdo misto pode ser exibido, com a MixedContentHandling enumeração fornecendo três valores possíveis:

  • AlwaysAllow – indica que o WebView permitirá que uma origem HTTPS carregue conteúdo de uma origem HTTP.
  • NeverAllow – indica que o WebView não permitirá que uma origem HTTPS carregue conteúdo de uma origem HTTP.
  • CompatibilityMode – indica que o WebView tentará ser compatível com a abordagem do navegador da web do dispositivo mais recente. Alguns conteúdos HTTP podem ter permissão para serem carregados por uma origem HTTPS e outros tipos de conteúdo serão bloqueados. Os tipos de conteúdo bloqueados ou permitidos podem mudar com cada versão do sistema operacional.

O resultado é que um valor especificado MixedContentHandling é aplicado ao , que controla se o WebViewconteúdo misto pode ser exibido:

WebView de manipulação de conteúdo misto específico da plataforma