protected override void OnElementPropertyChanged(object sender, PropertyChangedEventArgs e) { base.OnElementPropertyChanged(sender, e); if (e.PropertyName == HybridWebView.UriProperty.PropertyName) { JivoDelegate = MainActivity.jivoSdk.JivoDelegate; DisplayMetrics dm = new DisplayMetrics(); ((Activity)JivoDelegate).GetSystemService(Context.WindowService).JavaCast <IWindowManager>().DefaultDisplay.GetMetrics(dm); float density = dm.Density; OnGlobalLayoutListener list = new OnGlobalLayoutListener(Control, density); Control.ViewTreeObserver.AddOnGlobalLayoutListener(list); progr = new ProgressDialog(Control.Context); progr.SetTitle("JivoSite"); progr.SetMessage("Загрузка..."); WebSettings webSettings = Control.Settings; webSettings.JavaScriptEnabled = true; webSettings.DomStorageEnabled = true; webSettings.DatabaseEnabled = true; //пробрасываем JivoInterface в Javascript Control.AddJavascriptInterface(new JivoInterface(Control, JivoDelegate), "JivoInterface"); Control.SetWebViewClient(new MyWebViewClient(JivoDelegate, progr)); Control.LoadUrl(/*string.Format("file:///android_asset/Content/{0}", Element.Uri)*/ Element.Uri); //Control.AddJavascriptInterface(new JSBridge(this), "jsBridge"); //Control.LoadUrl(/*string.Format("file:///android_asset/Content/{0}", Element.Uri)*/Element.Uri); //InjectJS(JavaScriptFunction); } if (e.PropertyName == HybridWebView.UriScriptProperty.PropertyName) { Control.LoadUrl(/*string.Format("file:///android_asset/Content/{0}", Element.Uri)*/ Element.UriScript); } }
public JivoInterface(WebView appView, IJivoDelegate JivoDelegate) { this.mAppView = appView; this.JivoDelegate = JivoDelegate; }
public MyWebViewClient(IJivoDelegate JivoDelegate, ProgressDialog progr) { this.JivoDelegate = JivoDelegate; this.progr = progr; }