首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >自定义WebView在模拟器中工作,但在物理设备中不工作。扎马林

自定义WebView在模拟器中工作,但在物理设备中不工作。扎马林
EN

Stack Overflow用户
提问于 2022-08-04 02:13:45
回答 1查看 113关注 0票数 2

我在Droid项目中实现了一个自定义的web视图呈现器。问题是,自定义WebView在模拟器中工作,而不在物理设备中工作。

在物理设备中,WebView只加载第一次,而不是第二次。尽管android版本是相同的,物理设备和模拟器有不同的结果。

代码语言:javascript
复制
  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());
              
            }
        }

    }

任何帮助都是非常感谢的。谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-08-04 09:52:43

我又在小米MI 6X Android 9上测试了它。它仍然可以很好地工作,无论多少次我进入网络视图。

所以我建议你在第二次进入webview时下载android来查看日志。

您也可以尝试在不同的设备上测试它,这些设备有不同的android版本。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73229657

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档