Android의 WebView 혼합 콘텐츠

Download Sample 샘플 다운로드

이 Android 플랫폼별은 API 21 이상을 대상으로 하는 애플리케이션에서 혼합 콘텐츠를 표시할 수 있는지 여부를 WebView 제어합니다. 혼합 콘텐츠는 처음에 HTTPS 연결을 통해 로드되지만 HTTP 연결을 통해 리소스(예: 이미지, 오디오, 비디오, 스타일시트, 스크립트)를 로드하는 콘텐츠입니다. 연결된 속성을 열거형 값으로 설정 WebView.MixedContentMode 하여 XAML에서 MixedContentHandling 사용합니다.

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

또는 흐름 API를 사용하여 C#에서 사용할 수 있습니다.

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

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

이 메서드는 WebView.On<Android> 이 플랫폼별이 Android에서만 실행되도록 지정합니다. WebView.SetMixedContentMode 네임스페이스의 Xamarin.Forms.PlatformConfiguration.AndroidSpecific 메서드는 다음 세 가지 가능한 값을 제공하는 열거형을 MixedContentHandling 사용하여 혼합 콘텐츠를 표시할 수 있는지 여부를 제어하는 데 사용됩니다.

  • AlwaysAllow – HTTPS 원본이 HTTP 원본에서 콘텐츠를 로드할 수 있음을 나타냅니다 WebView .
  • NeverAllow – HTTPS 원본이 WebView HTTP 원본에서 콘텐츠를 로드하는 것을 허용하지 않음을 나타냅니다.
  • CompatibilityMode – 최신 디바이스 웹 브라우저의 접근 방식과 호환되도록 시도했음을 나타냅니다 WebView . 일부 HTTP 콘텐츠는 HTTPS 원본에서 로드할 수 있으며 다른 형식의 콘텐츠는 차단됩니다. 차단되거나 허용되는 콘텐츠 형식은 각 운영 체제 릴리스에서 변경될 수 있습니다.

그 결과 지정된 MixedContentHandling 값이 혼합 콘텐츠를 표시할 WebView수 있는지 여부를 제어하는 값이 적용됩니다.

WebView mixed content handling platform-specific