protected override void OnPause()
        {
            base.OnPause();
            var webViewContainer = this.Window.DecorView.FindViewById <RelativeLayout>(Resource.Id.webViewContainer);

            X5WebViewHelper.AttachedWebView(WebViewKey, webViewContainer);
        }
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            RequestWindowFeature(WindowFeatures.NoTitle);
            SetContentView(Resource.Layout.CommonActivityVw);

            var paramString = this.Intent.GetStringExtra("OpenPageParam");
            var pageParam   = JsonConvert.DeserializeObject <PageParam>(paramString);

            var parentPageAttributes = AnalyticAgreement.PageParam[pageParam.ParentPageId];

            if (parentPageAttributes != null)
            {
                pageParam.ParentPageUrl    = parentPageAttributes.PageUrl;
                pageParam.ParentWebViewKey = parentPageAttributes.WebViewKey;
            }
            PageId        = pageParam.PageId;
            ParentPageId  = pageParam.ParentPageId;
            PageUrl       = pageParam.PageUrl;
            ParentPageUrl = pageParam.ParentPageUrl;
            if (AnalyticAgreement.PageParam.ContainsKey(PageId))
            {
                AnalyticAgreement.PageParam[PageId] = pageParam;
            }
            else
            {
                AnalyticAgreement.PageParam.Add(PageId, pageParam);
            }
            if (X5WebViewHelper.PageActivity.ContainsKey(PageId))
            {
                X5WebViewHelper.PageActivity[PageId] = this;
            }
            else
            {
                X5WebViewHelper.PageActivity.Add(PageId, this);
            }

            pageParam.WebViewKey = X5WebViewHelper.WebViewInit(PageId);

            WebViewKey       = pageParam.WebViewKey;
            ParentWebViewKey = pageParam.ParentWebViewKey;

            //var router = "{ path: '"+ pageParam.PageUrl + "', params: { PageId: '"+ PageId + "' }}";
            if (string.IsNullOrWhiteSpace(pageParam.OpenParam))
            {
                pageParam.OpenParam = "";
            }
            pageParam.OpenParam = pageParam.OpenParam.Replace("'", "```").Replace("\"", "~~~");
            var router = pageParam.PageUrl + "/" + pageParam.OpenParam;

            AnalyticAgreement.AgreementProvider.ExecuteJavaScript(PageId, $@"window.AppBridge.Router.push(""{router}"")");
            AnalyticAgreement.AgreementProvider.ExecuteJavaScript(PageId, $@"window.AppBridge.SetPageId(""{pageParam.ParentPageId}"",""{pageParam.PageId}"")");

            if (pageParam.IsHideNavBar)
            {
                var rlTitle = this.Window.DecorView.FindViewById <RelativeLayout>(Resource.Id.rlTitle);
                rlTitle.Visibility = ViewStates.Gone;
            }
            else
            {
                var barTableTextView = FindViewById <TextView>(Resource.Id.BarTitle);
                barTableTextView.Text = pageParam.PageName;

                var btnReturn = FindViewById <LinearLayout>(Resource.Id.btnReturn);
                btnReturn.Visibility = ViewStates.Visible;
                btnReturn.Click     += (sender, args) =>
                {
                    PageBack();
                };

                if (!pageParam.AllowBack)
                {
                    //���ط��ذ�ť
                    btnReturn.Visibility = ViewStates.Gone;
                }

                var btnRight = FindViewById <LinearLayout>(Resource.Id.btnRight);
                if (pageParam.AllowRightBtn &&
                    pageParam.RightBtnParam != null &&
                    !string.IsNullOrWhiteSpace(pageParam.RightBtnParam.BtnTitle) &&
                    pageParam.RightBtnParam.CallBackAction != null)
                {
                    var txtRight = FindViewById <TextView>(Resource.Id.txtRight);
                    txtRight.Text = pageParam.RightBtnParam.BtnTitle;

                    btnRight.Click += (sender, args) =>
                    {
                        pageParam.RightBtnParam.CallBackAction(sender, args);

                        AnalyticAgreement.AgreementProvider.OnRightBtn(PageId);
                    };
                }
                else
                {
                    btnRight.Visibility = ViewStates.Gone;
                }
            }
        }
        public static string WebViewInit(string pageId)
        {
            if (WebViewAssets == null)
            {
                WebViewAssets = new Dictionary <string, X5WebViewHelper>();
            }
            if (AnalyticAgreement.PageParam[pageId].IsRelative && WebViewAssets.ContainsKey(AnalyticAgreement.PageParam[pageId].ParentWebViewKey))
            {
                AnalyticAgreement.PageParam[pageId].WebViewKey     = AnalyticAgreement.PageParam[pageId].ParentWebViewKey;
                AnalyticAgreement.PageParam[pageId].IsLoadFinished = AnalyticAgreement.PageParam[AnalyticAgreement.PageParam[pageId].ParentPageId].IsLoadFinished;
                return(AnalyticAgreement.PageParam[pageId].WebViewKey);
            }

            if (string.IsNullOrWhiteSpace(AnalyticAgreement.PageParam[pageId].WebViewKey) || !WebViewAssets.ContainsKey(AnalyticAgreement.PageParam[pageId].WebViewKey))
            {
                var x5WebView = new X5WebViewHelper(MainActivity.thisActivity.Application.ApplicationContext);
                if (string.IsNullOrWhiteSpace(AnalyticAgreement.PageParam[pageId].WebViewKey))
                {
                    AnalyticAgreement.PageParam[pageId].WebViewKey = GetRandomString();
                }
                WebViewAssets.Add(AnalyticAgreement.PageParam[pageId].WebViewKey, x5WebView);
            }
            WebViewAssets[AnalyticAgreement.PageParam[pageId].WebViewKey].ScrollBarStyle             = ScrollbarStyles.InsideOverlay;
            WebViewAssets[AnalyticAgreement.PageParam[pageId].WebViewKey].VerticalScrollBarEnabled   = false;
            WebViewAssets[AnalyticAgreement.PageParam[pageId].WebViewKey].HorizontalScrollBarEnabled = false;

            WebViewAssets[AnalyticAgreement.PageParam[pageId].WebViewKey].Settings.JavaScriptEnabled = true;
            WebViewAssets[AnalyticAgreement.PageParam[pageId].WebViewKey].Settings.UseWideViewPort   = true;
            //缓存模式
            WebViewAssets[AnalyticAgreement.PageParam[pageId].WebViewKey].Settings.DomStorageEnabled = true;
            WebViewAssets[AnalyticAgreement.PageParam[pageId].WebViewKey].Settings.SetAppCacheMaxSize(1024 * 1024 * 8);//设置缓冲大小,我设的是8M
            string appCacheDir = MainActivity.thisActivity.GetDir("appcache", FileCreationMode.Private).Path;

            WebViewAssets[AnalyticAgreement.PageParam[pageId].WebViewKey].Settings.SetAppCachePath(appCacheDir);
            WebViewAssets[AnalyticAgreement.PageParam[pageId].WebViewKey].Settings.SetAppCacheEnabled(true);
            string appDatabaseDir = MainActivity.thisActivity.GetDir("databases", FileCreationMode.Private).Path;

            WebViewAssets[AnalyticAgreement.PageParam[pageId].WebViewKey].Settings.DatabasePath    = appDatabaseDir;
            WebViewAssets[AnalyticAgreement.PageParam[pageId].WebViewKey].Settings.DatabaseEnabled = true;
            string appGeolocationDir = MainActivity.thisActivity.GetDir("geolocation", FileCreationMode.Private).Path;

            WebViewAssets[AnalyticAgreement.PageParam[pageId].WebViewKey].Settings.SetGeolocationDatabasePath(appGeolocationDir);
            WebViewAssets[AnalyticAgreement.PageParam[pageId].WebViewKey].Settings.SetGeolocationEnabled(true);
            WebViewAssets[AnalyticAgreement.PageParam[pageId].WebViewKey].Settings.AllowContentAccess = true;
            WebViewAssets[AnalyticAgreement.PageParam[pageId].WebViewKey].Settings.AllowFileAccess    = true;
            //网页自适应
            WebViewAssets[AnalyticAgreement.PageParam[pageId].WebViewKey].Settings.SetLayoutAlgorithm(WebSettings.LayoutAlgorithm.SingleColumn);
            WebViewAssets[AnalyticAgreement.PageParam[pageId].WebViewKey].Settings.LoadWithOverviewMode    = true;
            WebViewAssets[AnalyticAgreement.PageParam[pageId].WebViewKey].Settings.DefaultTextEncodingName = "utf-8";
            WebViewAssets[AnalyticAgreement.PageParam[pageId].WebViewKey].SetWebViewClient(new ExtWebViewClient());
            WebViewAssets[AnalyticAgreement.PageParam[pageId].WebViewKey].SetWebChromeClient(new ExtWebChromeClient());

            WebViewAssets[AnalyticAgreement.PageParam[pageId].WebViewKey].Settings.SetLayoutAlgorithm(WebSettings.LayoutAlgorithm.NarrowColumns);
            WebViewAssets[AnalyticAgreement.PageParam[pageId].WebViewKey].Settings.SetSupportZoom(false);
            WebViewAssets[AnalyticAgreement.PageParam[pageId].WebViewKey].Settings.SetSupportMultipleWindows(false);

            WebViewAssets[AnalyticAgreement.PageParam[pageId].WebViewKey].SetDownloadListener(new DownloadListener());
            WebViewAssets[AnalyticAgreement.PageParam[pageId].WebViewKey].SetOnLongClickListener(WebViewAssets[AnalyticAgreement.PageParam[pageId].WebViewKey]);

            var hostUrl = HybridCommon.Config.HtmlServerHost + "/index.html#/Empty/" + pageId;

            //var hostUrl = "file:///" + DeviceInfo.HtmlFolder + "/index.html#/Empty/" + pageId;

            WebViewAssets[AnalyticAgreement.PageParam[pageId].WebViewKey].LoadUrl(hostUrl);
            CookieSyncManager.CreateInstance(MainActivity.thisActivity.Application.ApplicationContext);
            CookieSyncManager.Instance.Sync();

            return(AnalyticAgreement.PageParam[pageId].WebViewKey);
        }