通过访问.net maui中的android webview设置修改变量

2guxujil  于 2022-12-16  发布在  Android
关注(0)|答案(1)|浏览(324)

我发现用maui开发的android app的web view控件中显示的站点的viewport设置被忽略了,所以需要在webview控件设置中将setUseWideViewPort设置设置为true,但是我也没有使用过xamarin,maui已经使用了2天了,如何进入这个设置修改值呢?https://developer.android.com/reference/android/webkit/WebSettings#setUseWideViewPort(boolean)
我找到了忽略viewport meta标记的原因,但是我不知道如何设置该值使其不被忽略

jexiocij

jexiocij1#

可以使用处理程序设置setUseWideViewPort
创建从WebView派生的MyWebview类:

namespace MauiApp1.Resources.Controls
{
    class MyWebview:WebView
    {
    }
}

在.xaml中使用MyWebview

<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             xmlns:Controls="clr-namespace:MauiApp1.Resources.Controls"
             x:Class="MauiApp1.MainPage">

   <Controls:MyWebview Source="https://learn.microsoft.com/dotnet/maui"/>

</ContentPage>

然后,您可以通过WebViewHandler的属性Map器自定义WebViewHandler,以便仅对MyWebview示例执行所需的修改:

using MauiApp1.Resources.Controls;

namespace MauiApp1;

public partial class MainPage : ContentPage
{
    public MainPage()
    {
        InitializeComponent();
        ModifyWebview();    
    }

    void ModifyWebview()
    {
        Microsoft.Maui.Handlers.WebViewHandler.Mapper.AppendToMapping("MyCustomization", (Handler, View) =>
        {
            if (View is MyWebview)
            {
#if ANDROID
              Handler.PlatformView.Settings.UseWideViewPort= true;
#endif
            }
        });

   }

}

相关问题