public AndroidWebView(Zebble.WebView view) : base(UIRuntime.CurrentActivity)
        {
            try
            {
                View = view;

                Settings.JavaScriptEnabled = true;
                AddJavascriptInterface(JavascriptInterface = new JavaScriptResult(View), "JsInterface");
                SetWebViewClient(Client = new AndroidWebViewClient {
                    WebView = this
                });

                View.SourceChanged.HandleActionOn(Thread.UI, Refresh);
                View.EvaluatedJavascript         += s => Thread.UI.Run(() => EvaluateJavascript(s));
                View.EvaluatedJavascriptFunction += (s, a) => Thread.UI.Run(() =>
                {
                    EvaluateJavascriptFunction(s, a);
                    return(Task.FromResult(""));
                });

                Refresh();
            }
            catch (Exception ex)
            {
                Zebble.Alert.Show(ex.Message);
            }
        }
示例#2
0
        protected override void Dispose(bool disposing)
        {
            base.Dispose(disposing);

            Client?.Dispose();
            Client = null;
            View   = null;
        }
示例#3
0
        public AndroidWebView(WebView view) : base(UIRuntime.CurrentActivity.ApplicationContext)
        {
            try
            {
                View = view;

                Settings.JavaScriptEnabled = true;
                Settings.MediaPlaybackRequiresUserGesture  = view.WebViewConfiguration.MediaTypesRequiringUserActionForPlayback;
                AddJavascriptInterface(JavascriptInterface = new JavaScriptResult(View), "JsInterface");
                SetWebViewClient(Client = new AndroidWebViewClient {
                    WebView = this
                });

                View.SourceChanged.HandleOnUI(Refresh);
                View.EvaluatedJavascript      += s => Thread.UI.Run(() => EvaluateJavascript(s));
                View.InvokeJavascriptFunction += (s, a) => Thread.UI.Run(() => EvaluateJavascriptFunction(s, a));

                Refresh();
            }
            catch (Exception ex)
            {
                Alert.Show(ex.Message);
            }
        }