예제 #1
0
        protected override void OnElementChanged(ElementChangedEventArgs <WebView> e)
        {
            base.OnElementChanged(e);

            if (Control == null)
            {
                var webView = CreateNativeControl();
#pragma warning disable 618 // This can probably be replaced with LinearLayout(LayoutParams.MatchParent, LayoutParams.MatchParent); just need to test that theory
                webView.LayoutParameters = new global::Android.Widget.AbsoluteLayout.LayoutParams(LayoutParams.MatchParent, LayoutParams.MatchParent, 0, 0);
#pragma warning restore 618

                _webViewClient = GetWebViewClient();
                webView.SetWebViewClient(_webViewClient);

                _webChromeClient = GetFormsWebChromeClient();
                _webChromeClient.SetContext(Context);
                webView.SetWebChromeClient(_webChromeClient);

                webView.Settings.JavaScriptEnabled = true;
                webView.Settings.DomStorageEnabled = true;
                SetNativeControl(webView);
            }

            if (e.OldElement != null)
            {
                var oldElementController = e.OldElement as IWebViewController;
                oldElementController.EvalRequested -= OnEvalRequested;
                oldElementController.EvaluateJavaScriptRequested -= OnEvaluateJavaScriptRequested;
                oldElementController.GoBackRequested             -= OnGoBackRequested;
                oldElementController.GoForwardRequested          -= OnGoForwardRequested;
                oldElementController.ReloadRequested             -= OnReloadRequested;
            }

            if (e.NewElement != null)
            {
                var newElementController = e.NewElement as IWebViewController;
                newElementController.EvalRequested += OnEvalRequested;
                newElementController.EvaluateJavaScriptRequested += OnEvaluateJavaScriptRequested;
                newElementController.GoBackRequested             += OnGoBackRequested;
                newElementController.GoForwardRequested          += OnGoForwardRequested;
                newElementController.ReloadRequested             += OnReloadRequested;

                UpdateMixedContentMode();
            }

            Load();
        }
예제 #2
0
        protected override void OnElementChanged(ElementChangedEventArgs <WebView> e)
        {
            base.OnElementChanged(e);

            if (Control == null)
            {
                var webView = new AWebView(Context);
#pragma warning disable 618 // This can probably be replaced with LinearLayout(LayoutParams.MatchParent, LayoutParams.MatchParent); just need to test that theory
                webView.LayoutParameters = new global::Android.Widget.AbsoluteLayout.LayoutParams(LayoutParams.MatchParent, LayoutParams.MatchParent, 0, 0);
#pragma warning restore 618
                webView.SetWebViewClient(new WebClient(this));

                _webChromeClient = GetFormsWebChromeClient();
                _webChromeClient.SetContext(Context as IStartActivityForResult);
                webView.SetWebChromeClient(_webChromeClient);

                webView.Settings.JavaScriptEnabled = true;
                webView.Settings.DomStorageEnabled = true;
                SetNativeControl(webView);
            }

            if (e.OldElement != null)
            {
                e.OldElement.EvalRequested      -= OnEvalRequested;
                e.OldElement.GoBackRequested    -= OnGoBackRequested;
                e.OldElement.GoForwardRequested -= OnGoForwardRequested;
            }

            if (e.NewElement != null)
            {
                e.NewElement.EvalRequested      += OnEvalRequested;
                e.NewElement.GoBackRequested    += OnGoBackRequested;
                e.NewElement.GoForwardRequested += OnGoForwardRequested;
            }

            Load();
        }