我已经在Droid项目中实现了一个定制的Web视图呈现器.问题是,Custom WebView在模拟器中工作,而不在物理设备中工作.

在物理设备中,WebView仅加载第一次,而不是第二次.即使Android版本相同,物理设备和模拟器的结果也不同.

你可以在这个链接中看到完整的代码Github

  public class MyWebViewRenderer : WebViewRenderer
    {
        public MyWebViewRenderer(Context context) : base(context) { }
        static MyWebView _xwebView = null;
        WebView _webView;
       
        class ExtendedWebViewClient : Android.Webkit.WebViewClient
        {
            public override async void OnPageFinished(WebView view, string url)
            {
                if (_xwebView != null)
                {
                    int i = 10;
                    while (view.ContentHeight == 0 && i-- > 0) 
                        await System.Threading.Tasks.Task.Delay(10);
                    _xwebView.HeightRequest = view.ContentHeight;
                }
                base.OnPageFinished(view, url);
               
            }
        }

        protected override void OnElementChanged(ElementChangedEventArgs<Xamarin.Forms.WebView> e)
        {
            base.OnElementChanged(e);
            _xwebView = e.NewElement as MyWebView;
            _webView = Control;

            if (e.OldElement == null)
            {
                _webView.SetWebViewClient(new ExtendedWebViewClient());
              
            }
        }

    }

如有任何帮助,我们不胜感激.谢谢!

推荐答案

我已经在小米MI 6X Android 9上再次测试了它.无论我进入多少次网络浏览,它仍然可以很好地工作.

所以我建议你第二次进入Webview的时候,下载Android工作室查看一下日志(log).

你也可以try 在安卓版本不同的不同设备上测试它.

Csharp相关问答推荐

禁用AutoSuggestBox项目更改时的动画?

解析需要HttpClient和字符串的服务

为什么C#Bigbit不总是相同的比特长度?

如何修改中间件或其注册以正确使用作用域服务?

如何在C#中将对象[*,*]直接转换为字符串[*,*]?

创建临时Collection 最有效的方法是什么?堆栈分配和集合表达式之间的区别?

如何解决提交按钮后 Select 选项错误空参照异常

如何使用EF Core和.NET 8来upsert到具有多对多关系的表?

反序列化私有成员

如何将字符串变量传递给JObject C#-无法加载文件或程序集';System.Text.Json

.NET 8在appsettings.json中核心使用词典URI、URI&>

两个DateTimeOffset之间的差异返回意外的负值

C#使用相同内存的多个数组

如何消除Visual Studio错误,因为它不识别集合表达式的新C#12语法?

仅在Blazor Web App中覆盖生产的基本路径(.NET8中的_Hosts.cshtml文件功能?)

为什么连接到Google OAuth2后,结果.Credential为空?

客户端/服务器RPC如何处理全局变量?

如何在flutter dart中使用publicKey.xml文件进行rsa加密,我遇到了问题Exception:Could not parse BigInt

能否将我图表中的星号与X轴上一天中的第二位数字对齐?

ASP.NET核心中的验证错误-该字段为必填字段