///// <summary> ///// Initializes a new instance of the <see cref="FullScreenEnabledWebViewRenderer"/> class. ///// </summary> ///// <param name="context">An Android context.</param> protected override void OnElementChanged(ElementChangedEventArgs <WebView> e) { base.OnElementChanged(e); _dialogService = BaseLocator.Instance.Resolve <IDialogService>(); if (e.OldElement is Controls.ExtWebView oldWebView && Control != null) { Control.RemoveJavascriptInterface("jsBridge"); oldWebView.Cleanup(); } if (e.NewElement is Controls.ExtWebView newWebView) { if (Control == null) { var webView = new Android.Webkit.WebView(_context); webView.Settings.JavaScriptEnabled = true; webView.SetWebViewClient(new ExtWebViewClient(newWebView, $"javascript: {JavascriptFunction}")); //webView.SetWebChromeClient(new Android.Webkit.WebChromeClient()); SetNativeControl(webView); } else { _extWebView = newWebView; Control.Settings.JavaScriptEnabled = true; Control.SetWebViewClient(new ExtWebViewClient(newWebView, $"javascript: {JavascriptFunction}")); //Control.SetWebChromeClient(new Android.Webkit.WebChromeClient()); Control.AddJavascriptInterface(new JSBridge(this), "jsBridge"); Control.SetBackgroundColor(Android.Graphics.Color.Transparent); } } }
public ExtWebViewClient(Signbook.Controls.ExtWebView element, string javascript) { _extWebView = element; _javascript = javascript; }