Android 上的 WebView 混合內容
此 Android 平臺特定控制是否可以 WebView
在以 API 21 或更新版本為目標的應用程式中顯示混合內容。 混合內容是一開始透過 HTTPS 連線載入的內容,但會透過 HTTP 連線載入資源(例如影像、音訊、視訊、樣式表單、腳本)。 它會在 XAML 中取用,方法是將 WebView.MixedContentMode
附加屬性設定為 列舉的值 MixedContentHandling
:
<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上執行。 命名空間 WebView.SetMixedContentMode
中的 Xamarin.Forms.PlatformConfiguration.AndroidSpecific
方法可用來控制是否可以顯示混合內容,而 MixedContentHandling
列舉提供三個可能的值:
AlwaysAllow
– 表示WebView
將允許 HTTPS 來源從 HTTP 來源載入內容。NeverAllow
– 表示WebView
不允許 HTTPS 來源從 HTTP 來源載入內容。CompatibilityMode
– 表示WebView
會嘗試與最新裝置網頁瀏覽器的方法相容。 某些 HTTP 內容可能允許由 HTTPS 來源載入,而其他類型的內容將會遭到封鎖。 封鎖或允許的內容類型可能會隨著每個操作系統版本而變更。
結果是,指定的 MixedContentHandling
值會套用至 WebView
,以控制是否可以顯示混合內容: