| | |
| | | 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; |