wxr
2023-07-20 8c28c3f43f91510e3a99189243c17717bdee1a0e
HDL_ON/UI/MainPage.cs
@@ -530,72 +530,82 @@
        public static int LoadEvent_BackAction()
        {
            int result = 0;
            Application.RunOnMainThread(() =>
            {
                if (Inverter.Ins.H5Page.Parent != null)
                try
                {
                    if (Inverter.Ins.PageIndex != "1")
                    if (Inverter.Ins.H5Page.Parent != null)
                    {
                        Inverter.Ins.PageIndex = "1";
                        var status = new Dictionary<string, object> { ["method"] = "backPrePage", ["data"] = "" };
                        Inverter.Ins.H5Page.CallJS($"nativeToJs(\'{Newtonsoft.Json.JsonConvert.SerializeObject(status)}\')");
                        StartX = 0;
                        BtnBackIcon.X = -Application.GetRealWidth(100);
                        return;
                    }
                    else
                    {
                        Inverter.Ins.PageIndex = "1";
                    }
                }
                if (BasePageView == null || BasePageView.ChildrenCount <= 1)
                {
                    result = 2;//无法再后退,可以执行退到桌面
                }
                if (BasePageView.ChildrenCount > 1)
                {
                    int index = BasePageView.ChildrenCount - 1;
                    var view = BasePageView.GetChildren(index);
                    if (view.GetType() == typeof(Loading))
                    {
                        var loading = view as Loading;
                        if (loading.CurStatus == false)//有一些等待界面隐藏了,但是没有移除到,需要先移除
                        if (Inverter.Ins.PageIndex != "1")
                        {
                            loading.RemoveFromParent();
                            result = LoadEvent_BackAction();
                            Inverter.Ins.PageIndex = "1";
                            var status = new Dictionary<string, object> { ["method"] = "backPrePage", ["data"] = "" };
                            Inverter.Ins.H5Page.CallJS($"nativeToJs(\'{Newtonsoft.Json.JsonConvert.SerializeObject(status)}\')");
                            StartX = 0;
                            BtnBackIcon.X = -Application.GetRealWidth(100);
                            return;
                        }
                        else
                        {
                            result = 1;//正在等待某些操作
                            Inverter.Ins.PageIndex = "1";
                        }
                    }
                    if (BasePageView == null || BasePageView.ChildrenCount <= 1)
                    {
                        result = 2;//无法再后退,可以执行退到桌面
                    }
                    else
                    {
                        if (view != null)
                        if (BasePageView.ChildrenCount > 1)
                        {
                            if (view.Tag != null)
                            int index = BasePageView.ChildrenCount - 1;
                            var view = BasePageView.GetChildren(index);
                            if (view.GetType() == typeof(Loading))
                            {
                                if (view.Tag.ToString() != "unlockpage")
                                var loading = view as Loading;
                                if (loading.CurStatus == false)//有一些等待界面隐藏了,但是没有移除到,需要先移除
                                {
                                    view.RemoveFromParent();
                                    loading.RemoveFromParent();
                                    result = LoadEvent_BackAction();
                                }
                                else
                                {
                                    result = 2;
                                    result = 1;//正在等待某些操作
                                }
                            }
                            else
                            {
                                view.RemoveFromParent();
                                if (view != null)
                                {
                                    if (view.Tag != null)
                                    {
                                        if (view.Tag.ToString() != "unlockpage")
                                        {
                                            view.RemoveFromParent();
                                        }
                                        else
                                        {
                                            result = 2;
                                        }
                                    }
                                    else
                                    {
                                        view.RemoveFromParent();
                                    }
                                }
                            }
                        }
                        else
                        {
                            result = 2;//无法再后退,可以执行退到桌面
                        }
                    }
                }
                else
                }catch(Exception ex)
                {
                    result = 2;//无法再后退,可以执行退到桌面
                    MainPage.Log($"加载安卓后退异常:{ex.Message}");
                }
            });
            return result;