don't setup webview if running as designer (#6592)
authorShane Neuville <shane94@hotmail.com>
Wed, 19 Jun 2019 23:52:31 +0000 (17:52 -0600)
committerSamantha Houts <samhouts@users.noreply.github.com>
Wed, 19 Jun 2019 23:52:31 +0000 (16:52 -0700)
Xamarin.Forms.Platform.Android/Renderers/WebViewRenderer.cs

index 1b87331..a634ff0 100644 (file)
@@ -17,14 +17,14 @@ namespace Xamarin.Forms.Platform.Android
 
                WebViewClient _webViewClient;
                FormsWebChromeClient _webChromeClient;
-
+               bool _isDisposed = false;
                protected internal IWebViewController ElementController => Element;
                protected internal bool IgnoreSourceChanges { get; set; }
                protected internal string UrlCanceled { get; set; }
 
                public WebViewRenderer(Context context) : base(context)
                {
-                       AutoPackage = false;
+                       AutoPackage = false;                    
                }
 
                [Obsolete("This constructor is obsolete as of version 2.5. Please use WebViewRenderer(Context) instead.")]
@@ -62,6 +62,10 @@ namespace Xamarin.Forms.Platform.Android
 
                protected override void Dispose(bool disposing)
                {
+                       if (_isDisposed)
+                               return;
+
+                       _isDisposed = true;
                        if (disposing)
                        {
                                if (Element != null)
@@ -119,6 +123,12 @@ namespace Xamarin.Forms.Platform.Android
                                _webChromeClient.SetContext(Context);
                                webView.SetWebChromeClient(_webChromeClient);
 
+                               if(Context.IsDesignerContext())
+                               {
+                                       SetNativeControl(webView);
+                                       return;
+                               }
+
                                webView.Settings.JavaScriptEnabled = true;
                                webView.Settings.DomStorageEnabled = true;
                                SetNativeControl(webView);