Android 上的 WebView 缩放

此特定于 Android 平台的功能可在 WebView上实现双指捏合缩放和缩放控制。 其使用方式为,在 XAML 中将 WebView.EnableZoomControlsWebView.DisplayZoomControls 可绑定属性设置为 boolean 值:

<ContentPage ...
             xmlns:android="clr-namespace:Xamarin.Forms.PlatformConfiguration.AndroidSpecific;assembly=Xamarin.Forms.Core">
    <WebView Source="https://www.xamarin.com"
             android:WebView.EnableZoomControls="true"
             android:WebView.DisplayZoomControls="true" />
</ContentPage>

WebView.EnableZoomControls 可绑定属性控制是否在 WebView 上启用捏合缩放,而 WebView.DisplayZoomControls 可绑定属性控制是否在 WebView 上覆盖缩放控件。

或者,可以通过 Fluent API 从 C# 使用平台特定功能:

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

webView.On<Android>()
    .EnableZoomControls(true)
    .DisplayZoomControls(true);

WebView.On<Android> 方法指定这一平台特定功能仅可在 Android 上运行。 Xamarin.Forms.PlatformConfiguration.AndroidSpecific 命名空间中的 WebView.EnableZoomControls 方法用于控制是否在 WebView 上启用捏合缩放。 同一命名空间中的 WebView.DisplayZoomControls 方法用于控制是否在 WebView 上覆盖缩放控件。 此外,WebView.ZoomControlsEnabledWebView.ZoomControlsDisplayed 方法还可用于返回是否分别启用捏合缩放和缩放控件的结果。

结果是可以在 WebView 上启用捏合缩放,并可以在 WebView 上覆盖缩放控件:

Android 上的缩放的 WebView 的屏幕截图

重要

必须同时通过相应的可绑定属性或方法启用和显示缩放控件,才能覆盖在 WebView 上。