Android での WebView 混合コンテンツ

この Android プラットフォーム固有設定は、WebView が API 21 以上を対象とするアプリケーションで混合コンテンツを表示できるかどうかを制御します。 混合コンテンツは、最初は HTTPS 接続経由で読み込まれたコンテンツですが、HTTP 接続経由でリソース (画像、オーディオ、ビデオ、スタイルシート、スクリプトなど) を読み込みます。 WebView.MixedContentMode 添付プロパティを MixedContentHandling 列挙型の値に設定することで、XAML で使用されます。

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

または、Fluent API を使用して C# から使用することもできます。

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

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

WebView.On<Android> メソッドは、このプラットフォーム固有設定が Android 上でのみ実行されるように指定します。 Xamarin.Forms.PlatformConfiguration.AndroidSpecific 名前空間の WebView.SetMixedContentMode メソッドは、混合コンテンツを表示できるかどうかを制御するために使用され、MixedContentHandling 列挙型では次の 3 つの可能な値が提供されます。

  • AlwaysAllow: WebView が HTTPS 配信元に対して HTTP 配信元からコンテンツを読み込めることを許可することを示します。
  • NeverAllow: WebView が HTTPS 配信元が HTTP 配信元からコンテンツを読み込むのを許可しないことを示します。
  • CompatibilityMode: WebView が最新のデバイス Web ブラウザーのアプローチとの互換性を試みることを示します。 一部の HTTP コンテンツは HTTPS 配信元によって読み込める場合があり、他の種類のコンテンツはブロックされます。 ブロックまたは許可されるコンテンツの種類は、オペレーティング システムのリリースごとに変更される可能性があります。

結果として、指定した MixedContentHandling 値が WebView に適用され、混合コンテンツを表示できるかどうかを制御します。

WebView の混合コンテンツ処理のプラットフォーム固有設定