| | |
| | | |
| | | namespace HDL_ON |
| | | { |
| | | public static class MainPage |
| | | { |
| | | |
| | | /// <summary> |
| | | /// BaseView |
| | | /// </summary> |
| | | public static FrameLayout BaseView { get; internal set; } |
| | | /// <summary> |
| | | /// BasePageView |
| | | /// </summary> |
| | | public static PageLayout BasePageView { get; set; } |
| | | /// <summary> |
| | | /// 用户控制父容器 |
| | | /// </summary> |
| | | public static UserPage UserBasePage; |
| | | /// <summary> |
| | | /// 版本号 |
| | | /// </summary> |
| | | public static string VersionString = "1.4.5"; |
| | | ///// <summary> |
| | | ///// 客户端类型 |
| | | ///// </summary> |
| | | //public static string ClientType = APIClientType.HDL_ON_PRO.ToString(); |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public static Entity.CityInfo cityInfo = new Entity.CityInfo(); |
| | | /// <summary> |
| | | /// 天气刷新action |
| | | /// </summary> |
| | | public static Action RefreshAir; |
| | | /// <summary> |
| | | /// 回退页面action 没有需要可以不用 |
| | | /// </summary> |
| | | public static Action ReturnRefreshAction; |
| | | /// <summary> |
| | | /// 无登录模式 |
| | | /// </summary> |
| | | public static bool NoLoginMode = false; |
| | | /// <summary> |
| | | /// 网络连接状态 |
| | | /// 0:无网络 |
| | | /// </summary> |
| | | public static int InternetStatus = 2; |
| | | /// <summary> |
| | | /// 是否进入后台 |
| | | /// </summary> |
| | | public static bool IsEnterBackground = false; |
| | | /// <summary> |
| | | /// 当前分页索引 |
| | | /// 0:收藏 |
| | | /// 1:分类 |
| | | /// 2:智能 |
| | | /// 3:个人 |
| | | /// </summary> |
| | | public static int CurPageIndex = 9999; |
| | | |
| | | ///// <summary> |
| | | ///// 公司代码 |
| | | ///// 预留第三方定制标记 |
| | | ///// 0:HDL |
| | | ///// </summary> |
| | | //public static int Company = 0; |
| | | |
| | | /// <summary> |
| | | /// 右滑后退提示按钮 |
| | | /// </summary> |
| | | public static Button BtnBackIcon; |
| | | /// <summary> |
| | | /// 后退右滑了多少距离,超过一定距离才触发后退事件 |
| | | /// </summary> |
| | | public static int StartX = 0; |
| | | /// <summary> |
| | | /// 是否全面屏手机 |
| | | /// </summary> |
| | | public static bool Increase |
| | | public static class MainPage |
| | | { |
| | | get |
| | | { |
| | | |
| | | /// <summary> |
| | | /// BaseView |
| | | /// </summary> |
| | | public static FrameLayout BaseView { get; internal set; } |
| | | /// <summary> |
| | | /// BasePageView |
| | | /// </summary> |
| | | public static PageLayout BasePageView { get; set; } |
| | | /// <summary> |
| | | /// 用户控制父容器 |
| | | /// </summary> |
| | | public static UserPage UserBasePage; |
| | | /// <summary> |
| | | /// 版本号 |
| | | /// </summary> |
| | | public static string VersionString = "1.8.0"; |
| | | ///// <summary> |
| | | ///// 客户端类型 |
| | | ///// </summary> |
| | | //public static string ClientType = APIClientType.HDL_ON_PRO.ToString(); |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public static CityInfo cityInfo = new CityInfo(); |
| | | /// <summary> |
| | | /// 城市天气信息antion |
| | | /// </summary> |
| | | public static Action CityWeatherAction = null; |
| | | |
| | | /// <summary> |
| | | /// 天气刷新action |
| | | /// </summary> |
| | | public static Action RefreshAir; |
| | | /// <summary> |
| | | /// 回退页面action 没有需要可以不用 |
| | | /// </summary> |
| | | public static Action ReturnRefreshAction; |
| | | /// <summary> |
| | | /// 无登录模式 |
| | | /// </summary> |
| | | public static bool NoLoginMode = false; |
| | | /// <summary> |
| | | /// 网络连接状态 |
| | | /// 0:无网络 |
| | | /// </summary> |
| | | public static int InternetStatus = 2; |
| | | /// <summary> |
| | | /// 连接mqtt次数 |
| | | /// </summary> |
| | | public static int LinkHdlMqttCount = 0; |
| | | /// <summary> |
| | | /// 是否进入后台 |
| | | /// </summary> |
| | | public static bool IsEnterBackground = false; |
| | | /// <summary> |
| | | /// 当前分页索引 |
| | | /// 0:收藏 |
| | | /// 1:分类 |
| | | /// 2:智能 |
| | | /// 3:个人 |
| | | /// </summary> |
| | | public static int CurPageIndex = 9999; |
| | | |
| | | ///// <summary> |
| | | ///// 公司代码 |
| | | ///// 预留第三方定制标记 |
| | | ///// 0:HDL |
| | | ///// </summary> |
| | | //public static int Company = 0; |
| | | |
| | | /// <summary> |
| | | /// 右滑后退提示按钮 |
| | | /// </summary> |
| | | public static Button BtnBackIcon; |
| | | /// <summary> |
| | | /// 后退右滑了多少距离,超过一定距离才触发后退事件 |
| | | /// </summary> |
| | | public static int StartX = 0; |
| | | /// <summary> |
| | | /// 是否全面屏手机 |
| | | /// </summary> |
| | | public static bool Increase |
| | | { |
| | | get |
| | | { |
| | | #if __IOS__ |
| | | if (Application.PhoneType>10) |
| | | if (Application.PhoneType > 10) |
| | | { |
| | | return true; |
| | | } |
| | |
| | | #else |
| | | return false; |
| | | #endif |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 场景支持的功能列表 |
| | | /// </summary> |
| | | public static List<string> SceneSupportFunctionList = new List<string> { |
| | | /// <summary> |
| | | /// 场景支持的功能列表 |
| | | /// </summary> |
| | | public static List<string> SceneSupportFunctionList = new List<string> { |
| | | SPK.LightCCT,SPK.LightDimming,SPK.LightSwitch,SPK.LightRGB, |
| | | SPK.CurtainRoller,SPK.CurtainSwitch,SPK.CurtainTrietex, |
| | | SPK.CurtainRoller,SPK.CurtainSwitch,SPK.CurtainTrietex,SPK.CurtainDream, |
| | | SPK.AcIr,SPK.AcStandard,SPK.HvacAC, |
| | | SPK.FloorHeatStandard,SPK.HvacFloorHeat, |
| | | SPK.AirFreshStandard,SPK.HvacAirFresh, |
| | | SPK.AirSwitch, |
| | | SPK.PanelSocket,SPK.ElectricSocket, |
| | | SPK.MechanicalArm,SPK.IpCam_Imou, |
| | | }; |
| | | |
| | | |
| | | static List<string> _RoomNotSupportFunctionList = null; |
| | | /// <summary> |
| | | /// 房间功能列表不加载的功能列表 |
| | | /// </summary> |
| | | public static List<string> RoomNotSupportFunctionList |
| | | { |
| | | get |
| | | { |
| | | if (_RoomNotSupportFunctionList == null) |
| | | static List<string> _RoomNotSupportFunctionList = null; |
| | | /// <summary> |
| | | /// 房间功能列表不加载的功能列表 |
| | | /// </summary> |
| | | public static List<string> RoomNotSupportFunctionList |
| | | { |
| | | _RoomNotSupportFunctionList = new List<string>(); |
| | | _RoomNotSupportFunctionList.Add(SPK.EnergyStandard); |
| | | _RoomNotSupportFunctionList.Add(SPK.MusicStandard); |
| | | _RoomNotSupportFunctionList.Add(SPK.AvMusic); |
| | | _RoomNotSupportFunctionList.Add(SPK.AirSwitch); |
| | | _RoomNotSupportFunctionList.Add(SPK.ElectricEnergy); |
| | | _RoomNotSupportFunctionList.AddRange(SPK.EnvironDeviceSpkList()); |
| | | _RoomNotSupportFunctionList.AddRange(SPK.ArmSensorSpkList()); |
| | | } |
| | | return _RoomNotSupportFunctionList; |
| | | } |
| | | } |
| | | |
| | | public static void Show() |
| | | { |
| | | try |
| | | { |
| | | Application.DesignWidth = 375; |
| | | Application.DesignHeight = 667; |
| | | |
| | | BaseView = Application.MainPage; |
| | | Application.MainPage.BackgroundColor = CSS_Color.MainBackgroundColor; |
| | | Language.UpdateLanguage(); |
| | | //#region 测试 |
| | | //var ddd = new UI.test.TestDialog(); |
| | | //ddd.InitView(); |
| | | //return; |
| | | //#endregion |
| | | |
| | | if (string.IsNullOrEmpty(OnAppConfig.Instance.LastLoginUserId)) |
| | | { |
| | | GoLoginPage(); |
| | | } |
| | | else |
| | | { |
| | | //判断需不需要登录,有没有登录,或者登录是否过期, |
| | | if (UserInfo.Current == null || !UserInfo.Current.IsLogin) |
| | | { |
| | | GoLoginPage(UserInfo.Current); |
| | | } |
| | | else |
| | | { |
| | | //new System.Threading.Thread(() => |
| | | //{ |
| | | // var pm = new DAL.Server.HttpServerRequest(); |
| | | // pm.RefreshToken();//刷新Token |
| | | // pm.GetHomePager();//刷新住宅信息 |
| | | // pm.GetUserInfo();//刷新个人信息 |
| | | //}) |
| | | //{ IsBackground = true }.Start(); |
| | | Common.ApiUtlis.Ins.DownloadData(); |
| | | |
| | | GoUserPage(false, true); |
| | | } |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | Log("root erorr : " + ex.Message); |
| | | } |
| | | finally |
| | | { |
| | | //Application.RunOnMainThread(() => { |
| | | // Application.HideSoftInput(); |
| | | //}); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 进入登录界面 |
| | | /// </summary> |
| | | public static void GoLoginPage(UserInfo userInfo = null) |
| | | { |
| | | BaseView.RemoveAll(); |
| | | BaseView.BackgroundColor = CSS_Color.BackgroundColor; |
| | | var fisrtView = new UI.UI1Login.LoginPage(); |
| | | fisrtView.BackgroundColor = CSS_Color.MainBackgroundColor; |
| | | BaseView.AddChidren(fisrtView); |
| | | fisrtView.LoadView(userInfo); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 进入主页 |
| | | /// </summary> |
| | | /// <param name="isFirstOpen">如果是第一次启动 检测校验密码</param> |
| | | /// <param name="pageShowEvent">主页显示之后触发的事件(没有住宅的话,则不会触发)</param> |
| | | public static void GoUserPage(bool downloadData, bool isFirstOpen = false, Action pageShowEvent = null) |
| | | { |
| | | BaseView.RemoveAll(); |
| | | #region 后退事件 |
| | | BasePageView = new PageLayout(); |
| | | BasePageView.ScrollEnabled = false; |
| | | BasePageView.IsShowPoint = false; |
| | | BasePageView.PageChange = (sender, e) => |
| | | { |
| | | if (e < BasePageView.ChildrenCount - 1) |
| | | { |
| | | BasePageView.GetChildren(BasePageView.ChildrenCount - 1).RemoveFromParent(); |
| | | } |
| | | try |
| | | { |
| | | ReturnRefreshAction?.Invoke(); |
| | | ReturnRefreshAction = null; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | Log($"后退事件异常:{ex.Message}"); |
| | | } |
| | | }; |
| | | BaseView.AddChidren(BasePageView); |
| | | var backView = new FrameLayout() |
| | | { |
| | | Y = Application.GetRealHeight(100), |
| | | Width = Application.GetRealWidth(10), |
| | | Height = Application.GetRealHeight(440), |
| | | }; |
| | | BaseView.AddChidren(backView); |
| | | |
| | | BtnBackIcon = new Button() |
| | | { |
| | | X = -Application.GetRealWidth(100), |
| | | Gravity = Gravity.CenterVertical, |
| | | Width = Application.GetRealWidth(88 / 2), |
| | | Height = Application.GetRealHeight(56 / 2), |
| | | UnSelectedImagePath = "Public/RightSlideBackIcon.png" |
| | | }; |
| | | BaseView.AddChidren(BtnBackIcon); |
| | | backView.MouseMoveEventHandler = (sender, e) => |
| | | { |
| | | if (BasePageView.ChildrenCount <= 1) |
| | | { |
| | | return; |
| | | } |
| | | MainPage.Log($"move:{e.X}"); |
| | | if (StartX == 0 && e.X < 30) |
| | | { |
| | | StartX = (int)e.X; |
| | | } |
| | | if (StartX < 30) |
| | | { |
| | | if (e.X < Application.GetRealWidth(100)) |
| | | { |
| | | BtnBackIcon.X = (int)e.X - Application.GetRealWidth(100); |
| | | } |
| | | } |
| | | }; |
| | | backView.MouseDownEventHandler = (sender, e) => |
| | | { |
| | | if (BasePageView.ChildrenCount <= 1) |
| | | { |
| | | return; |
| | | } |
| | | MainPage.Log($"down:{e.X}"); |
| | | StartX = (int)e.X; |
| | | BtnBackIcon.Y = (int)e.Y + Application.GetRealHeight(50); |
| | | }; |
| | | backView.MouseUpEventHandler = (sender, e) => |
| | | { |
| | | MainPage.Log($"up{e.X}"); |
| | | StartX = 0; |
| | | BtnBackIcon.X = -Application.GetRealWidth(100); |
| | | |
| | | if (e.X > 70) |
| | | { |
| | | if (BasePageView.ChildrenCount > 1) |
| | | { |
| | | BasePageView.PageIndex = BasePageView.ChildrenCount - 2; |
| | | } |
| | | } |
| | | }; |
| | | backView.MouseUpOutsideEventHandler = (sender, e) => |
| | | { |
| | | MainPage.Log($"up{e.X}"); |
| | | StartX = 0; |
| | | BtnBackIcon.X = -Application.GetRealWidth(100); |
| | | |
| | | if (e.X > 70) |
| | | { |
| | | if (BasePageView.ChildrenCount > 1) |
| | | { |
| | | BasePageView.PageIndex = BasePageView.ChildrenCount - 2; |
| | | } |
| | | } |
| | | }; |
| | | #endregion |
| | | |
| | | |
| | | //体验模式 |
| | | if (NoLoginMode) |
| | | { |
| | | //跳转页面---- |
| | | UserBasePage = new UserPage(); |
| | | BasePageView.AddChidren(UserBasePage); |
| | | UserBasePage.LoadPage(); |
| | | BasePageView.PageIndex = 0; |
| | | |
| | | return; |
| | | } |
| | | |
| | | //加载Loading效果 |
| | | var waitPage = new Loading(); |
| | | BaseView.AddChidren(waitPage); |
| | | waitPage.Start(Language.StringByID(StringId.PleaseWait)); |
| | | |
| | | //当没有住宅时,不能让它往下走 |
| | | if (UserInfo.Current.regionList.Count == 0) |
| | | { |
| | | waitPage.Hide(); |
| | | var addResidencePage = new BindingResidencePage(); |
| | | BaseView.AddChidren(addResidencePage); |
| | | addResidencePage.LoadView(); |
| | | return; |
| | | } |
| | | new System.Threading.Thread(async () => |
| | | { |
| | | try |
| | | { |
| | | Entity.FunctionList.List.Clear(); |
| | | Entity.SpatialInfo.CurrentSpatial.Clear(); |
| | | ///等待获取住宅信息 |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | if (waitPage != null) |
| | | get |
| | | { |
| | | waitPage.RemoveFromParent(); |
| | | waitPage = null; |
| | | } |
| | | |
| | | //跳转页面---- |
| | | UserBasePage = new UserPage(); |
| | | BasePageView.AddChidren(UserBasePage); |
| | | UserBasePage.LoadPage(); |
| | | BasePageView.PageIndex = 0; |
| | | |
| | | if (isFirstOpen) |
| | | { |
| | | //启动密码验证 |
| | | new AppUnlockPage().LoadPage(isFirstOpen); |
| | | } |
| | | //主页加载完成,回调事件 |
| | | pageShowEvent?.Invoke(); |
| | | pageShowEvent = null; |
| | | }); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | MainPage.Log($"GoUserPage : {ex.Message}"); |
| | | } |
| | | finally |
| | | { |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | if (downloadData) |
| | | { |
| | | DB_ResidenceData.Instance.EixtAccount(); |
| | | ///初始化app数据 |
| | | Common.ApiUtlis.Ins.DownloadData(); |
| | | }; |
| | | }); |
| | | } |
| | | }).Start(); |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 后退事件 |
| | | /// 0:后退 |
| | | /// 1:有等待界面 |
| | | /// 2:无法再后退,可以执行退到桌面 |
| | | /// </summary> |
| | | public static int LoadEvent_BackAction() |
| | | { |
| | | int result = 0; |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | 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)//有一些等待界面隐藏了,但是没有移除到,需要先移除 |
| | | { |
| | | loading.RemoveFromParent(); |
| | | result = LoadEvent_BackAction(); |
| | | } |
| | | else |
| | | { |
| | | result = 1;//正在等待某些操作 |
| | | } |
| | | } |
| | | else |
| | | { |
| | | if (view != null) |
| | | { |
| | | if (view.Tag != null) |
| | | { |
| | | if (view.Tag.ToString() != "unlockpage") |
| | | if (_RoomNotSupportFunctionList == null) |
| | | { |
| | | view.RemoveFromParent(); |
| | | _RoomNotSupportFunctionList = new List<string>(); |
| | | _RoomNotSupportFunctionList.Add(SPK.EnergyStandard); |
| | | //_RoomNotSupportFunctionList.Add(SPK.MusicStandard); |
| | | //_RoomNotSupportFunctionList.Add(SPK.AvMusic); |
| | | _RoomNotSupportFunctionList.Add(SPK.AirSwitch); |
| | | _RoomNotSupportFunctionList.Add(SPK.ElectricEnergy); |
| | | //_RoomNotSupportFunctionList.Add(SPK.OtherCommon); |
| | | _RoomNotSupportFunctionList.Add(SPK.SensorLight); |
| | | _RoomNotSupportFunctionList.AddRange(SPK.EnvironDeviceSpkList()); |
| | | //_RoomNotSupportFunctionList.AddRange(SPK.ArmSensorSpkList()); |
| | | } |
| | | return _RoomNotSupportFunctionList; |
| | | } |
| | | } |
| | | |
| | | public static void Show() |
| | | { |
| | | try |
| | | { |
| | | Application.DesignWidth = 375; |
| | | Application.DesignHeight = 667; |
| | | //设置语言环境 防止string转 double出现逗号,todouble异常等问题 |
| | | System.Globalization.CultureInfo.CurrentCulture = System.Globalization.CultureInfo.CreateSpecificCulture("zh-CN"); |
| | | |
| | | BaseView = Application.MainPage; |
| | | Application.MainPage.BackgroundColor = CSS_Color.MainBackgroundColor; |
| | | Language.UpdateLanguage(); |
| | | //#region 测试 |
| | | //var ddd = new UI.test.TestDialog(); |
| | | //ddd.InitView(); |
| | | //return; |
| | | //#endregion |
| | | |
| | | if (string.IsNullOrEmpty(OnAppConfig.Instance.LastLoginUserId)) |
| | | { |
| | | GoLoginPage(); |
| | | } |
| | | else |
| | | { |
| | | result = 2; |
| | | //判断需不需要登录,有没有登录,或者登录是否过期, |
| | | if (UserInfo.Current == null || !UserInfo.Current.IsLogin) |
| | | { |
| | | GoLoginPage(UserInfo.Current); |
| | | } |
| | | else |
| | | { |
| | | //new System.Threading.Thread(() => |
| | | //{ |
| | | // var pm = new DAL.Server.HttpServerRequest(); |
| | | // pm.RefreshToken();//刷新Token |
| | | // pm.GetHomePager();//刷新住宅信息 |
| | | // pm.GetUserInfo();//刷新个人信息 |
| | | //}) |
| | | //{ IsBackground = true }.Start(); |
| | | Common.ApiUtlis.Ins.DownloadData(); |
| | | |
| | | GoUserPage(false, true); |
| | | } |
| | | } |
| | | } |
| | | else |
| | | { |
| | | view.RemoveFromParent(); |
| | | } |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | Log("root erorr : " + ex.Message); |
| | | } |
| | | finally |
| | | { |
| | | //Application.RunOnMainThread(() => { |
| | | // Application.HideSoftInput(); |
| | | //}); |
| | | } |
| | | |
| | | try |
| | | { |
| | | CommonClass.excptionAction = (obj) => |
| | | { |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | Stan.HdlMessageLogic.Current.ShowAppProgramIsError(obj); |
| | | }); |
| | | }; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | |
| | | } |
| | | |
| | | #if __ANDROID__ |
| | | new System.Threading.Thread(async () => |
| | | { |
| | | int i = 0; |
| | | while (i < 10) { |
| | | try |
| | | { |
| | | var location_android = await HDL_ON_Android.LocationUtils.GetCurrentLocationAsync(); |
| | | if (location_android != null) |
| | | { |
| | | MainPage.cityInfo.lat = location_android.Latitude.ToString(); |
| | | MainPage.cityInfo.lon = location_android.Longitude.ToString(); |
| | | new HDL_ON.DAL.Server.HttpServerRequest().GetCityWeatherInfo(MainPage.cityInfo.lon.Replace(",", "."), MainPage.cityInfo.lat.ToString().Replace(",", ".")); |
| | | i = 100; |
| | | Application.RunOnMainThread(() => { |
| | | HomePage.LoadEvent_RefreshAir(); |
| | | }); |
| | | } |
| | | else |
| | | { |
| | | i++; |
| | | } |
| | | } catch (Exception ex) |
| | | { |
| | | Log($"经纬度获取异常: {ex.Message}"); |
| | | } |
| | | } |
| | | }) |
| | | { IsBackground = true }.Start(); |
| | | #endif |
| | | } |
| | | else |
| | | |
| | | /// <summary> |
| | | /// 进入登录界面 |
| | | /// </summary> |
| | | public static void GoLoginPage(UserInfo userInfo = null) |
| | | { |
| | | result = 2;//无法再后退,可以执行退到桌面 |
| | | try |
| | | { |
| | | for (int i = 0; i < BaseView.ChildrenCount; i++) |
| | | { |
| | | BaseView.GetChildren(i).RemoveFromParent(); |
| | | } |
| | | } |
| | | catch { } |
| | | BaseView.BackgroundColor = CSS_Color.BackgroundColor; |
| | | var fisrtView = new UI.UI1Login.LoginPage(); |
| | | fisrtView.BackgroundColor = CSS_Color.MainBackgroundColor; |
| | | BaseView.AddChidren(fisrtView); |
| | | fisrtView.LoadView(userInfo); |
| | | } |
| | | }); |
| | | return result; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 进入主页 |
| | | /// </summary> |
| | | /// <param name="isFirstOpen">如果是第一次启动 检测校验密码</param> |
| | | /// <param name="pageShowEvent">主页显示之后触发的事件(没有住宅的话,则不会触发)</param> |
| | | public static void GoUserPage(bool downloadData, bool isFirstOpen = false, Action pageShowEvent = null) |
| | | { |
| | | try |
| | | { |
| | | for (int i = 0; i < BaseView.ChildrenCount; i++) |
| | | { |
| | | BaseView.GetChildren(i).RemoveFromParent(); |
| | | } |
| | | } |
| | | catch { } |
| | | #region 后退事件 |
| | | BasePageView = new PageLayout(); |
| | | BasePageView.ScrollEnabled = false; |
| | | BasePageView.IsShowPoint = false; |
| | | BasePageView.PageChange = (sender, e) => |
| | | { |
| | | if (e < BasePageView.ChildrenCount - 1) |
| | | { |
| | | BasePageView.GetChildren(BasePageView.ChildrenCount - 1).RemoveFromParent(); |
| | | } |
| | | try |
| | | { |
| | | ReturnRefreshAction?.Invoke(); |
| | | ReturnRefreshAction = null; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | Log($"后退事件异常:{ex.Message}"); |
| | | } |
| | | }; |
| | | BaseView.AddChidren(BasePageView); |
| | | var backView = new FrameLayout() |
| | | { |
| | | Y = Application.GetRealHeight(100), |
| | | Width = Application.GetRealWidth(10), |
| | | Height = Application.GetRealHeight(440), |
| | | }; |
| | | BaseView.AddChidren(backView); |
| | | |
| | | BtnBackIcon = new Button() |
| | | { |
| | | X = -Application.GetRealWidth(100), |
| | | Gravity = Gravity.CenterVertical, |
| | | Width = Application.GetRealWidth(88 / 2), |
| | | Height = Application.GetRealHeight(56 / 2), |
| | | UnSelectedImagePath = "Public/RightSlideBackIcon.png" |
| | | }; |
| | | BaseView.AddChidren(BtnBackIcon); |
| | | backView.MouseMoveEventHandler = (sender, e) => |
| | | { |
| | | |
| | | if (BasePageView.ChildrenCount <= 1) |
| | | { |
| | | return; |
| | | } |
| | | MainPage.Log($"move:{e.X}"); |
| | | if (StartX == 0 && e.X < 30) |
| | | { |
| | | StartX = (int)e.X; |
| | | } |
| | | if (StartX < 30) |
| | | { |
| | | if (e.X < Application.GetRealWidth(100)) |
| | | { |
| | | BtnBackIcon.X = (int)e.X - Application.GetRealWidth(100); |
| | | } |
| | | } |
| | | }; |
| | | backView.MouseDownEventHandler = (sender, e) => |
| | | { |
| | | if (BasePageView.ChildrenCount <= 1) |
| | | { |
| | | return; |
| | | } |
| | | MainPage.Log($"down:{e.X}"); |
| | | StartX = (int)e.X; |
| | | BtnBackIcon.Y = (int)e.Y + Application.GetRealHeight(50); |
| | | }; |
| | | backView.MouseUpEventHandler = (sender, e) => |
| | | { |
| | | |
| | | if (Inverter.Ins.H5Page.Parent != null) |
| | | { |
| | | if (Inverter.Ins.PageIndex != "1") |
| | | { |
| | | Inverter.Ins.PageIndex = "1"; |
| | | var status = new Dictionary<string, object> { ["method"] = "backPrePage", ["data"] = "" }; |
| | | Inverter.Ins.H5Page.CallJS($"nativeToJs(\'{Newtonsoft.Json.JsonConvert.SerializeObject(status)}\')"); |
| | | MainPage.Log($"up{e.X}"); |
| | | StartX = 0; |
| | | BtnBackIcon.X = -Application.GetRealWidth(100); |
| | | return; |
| | | } |
| | | else |
| | | { |
| | | Inverter.Ins.PageIndex = "1"; |
| | | } |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 自定义日志输出 |
| | | /// </summary> |
| | | public static void Log(string msg) |
| | | { |
| | | MainPage.Log($"up{e.X}"); |
| | | StartX = 0; |
| | | BtnBackIcon.X = -Application.GetRealWidth(100); |
| | | |
| | | if (e.X > 70) |
| | | { |
| | | if (BasePageView.ChildrenCount > 1) |
| | | { |
| | | BasePageView.PageIndex = BasePageView.ChildrenCount - 2; |
| | | } |
| | | } |
| | | }; |
| | | backView.MouseUpOutsideEventHandler = (sender, e) => |
| | | { |
| | | if (Inverter.Ins.H5Page.Parent != null) |
| | | { |
| | | if (Inverter.Ins.PageIndex != "1") |
| | | { |
| | | Inverter.Ins.PageIndex = "1"; |
| | | List<AlinkStatusData> ddd = new List<AlinkStatusData>(); |
| | | //var status = new Dictionary<string, object> { ["method"] = "status", ["data"] = ddd }; |
| | | //var ddd3 = Newtonsoft.Json.JsonConvert.SerializeObject(status); |
| | | var status = new Dictionary<string, object> { ["method"] = "backPrePage", ["data"] = "" }; |
| | | Inverter.Ins.H5Page.CallJS($"nativeToJs(\'{Newtonsoft.Json.JsonConvert.SerializeObject(status)}\')"); |
| | | MainPage.Log($"up{e.X}"); |
| | | StartX = 0; |
| | | BtnBackIcon.X = -Application.GetRealWidth(100); |
| | | return; |
| | | } |
| | | else |
| | | { |
| | | Inverter.Ins.PageIndex = "1"; |
| | | } |
| | | } |
| | | |
| | | |
| | | MainPage.Log($"up{e.X}"); |
| | | StartX = 0; |
| | | BtnBackIcon.X = -Application.GetRealWidth(100); |
| | | |
| | | if (e.X > 70) |
| | | { |
| | | if (BasePageView.ChildrenCount > 1) |
| | | { |
| | | BasePageView.PageIndex = BasePageView.ChildrenCount - 2; |
| | | } |
| | | } |
| | | }; |
| | | #endregion |
| | | |
| | | |
| | | //体验模式 |
| | | if (NoLoginMode) |
| | | { |
| | | //跳转页面---- |
| | | UserBasePage = new UserPage(); |
| | | BasePageView.AddChidren(UserBasePage); |
| | | UserBasePage.LoadPage(); |
| | | BasePageView.PageIndex = 0; |
| | | |
| | | return; |
| | | } |
| | | |
| | | //加载Loading效果 |
| | | var waitPage = new Loading(); |
| | | BaseView.AddChidren(waitPage); |
| | | waitPage.Start(Language.StringByID(StringId.PleaseWait)); |
| | | |
| | | //当没有住宅时,不能让它往下走 |
| | | if (UserInfo.Current.regionList.Count == 0) |
| | | { |
| | | waitPage.Hide(); |
| | | var addResidencePage = new BindingResidencePage(); |
| | | BaseView.AddChidren(addResidencePage); |
| | | addResidencePage.LoadView(); |
| | | return; |
| | | } |
| | | |
| | | new System.Threading.Thread(() => |
| | | { |
| | | try |
| | | { |
| | | Entity.FunctionList.List.ClearDatas(); |
| | | Entity.SpatialInfo.CurrentSpatial.Clear(); |
| | | ///等待获取住宅信息 |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | if (waitPage != null) |
| | | { |
| | | waitPage.Hide(); |
| | | waitPage.RemoveFromParent(); |
| | | waitPage = null; |
| | | } |
| | | |
| | | //跳转页面---- |
| | | UserBasePage = new UserPage(); |
| | | BasePageView.AddChidren(UserBasePage); |
| | | UserBasePage.LoadPage(); |
| | | BasePageView.PageIndex = 0; |
| | | |
| | | if (isFirstOpen) |
| | | { |
| | | //启动密码验证 |
| | | new AppUnlockPage().LoadPage(isFirstOpen); |
| | | } |
| | | //主页加载完成,回调事件 |
| | | pageShowEvent?.Invoke(); |
| | | pageShowEvent = null; |
| | | }); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | MainPage.Log($"GoUserPage : {ex.Message}"); |
| | | } |
| | | finally |
| | | { |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | if (downloadData) |
| | | { |
| | | DB_ResidenceData.Instance.EixtAccount(); |
| | | ///初始化app数据 |
| | | Common.ApiUtlis.Ins.DownloadData(); |
| | | }; |
| | | }); |
| | | } |
| | | }).Start(); |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 后退事件 |
| | | /// 0:后退 |
| | | /// 1:有等待界面 |
| | | /// 2:无法再后退,可以执行退到桌面 |
| | | /// </summary> |
| | | public static int LoadEvent_BackAction() |
| | | { |
| | | int result = 0; |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | if (Inverter.Ins.H5Page.Parent != null) |
| | | { |
| | | if (Inverter.Ins.PageIndex != "1") |
| | | { |
| | | 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)//有一些等待界面隐藏了,但是没有移除到,需要先移除 |
| | | { |
| | | loading.RemoveFromParent(); |
| | | result = LoadEvent_BackAction(); |
| | | } |
| | | else |
| | | { |
| | | result = 1;//正在等待某些操作 |
| | | } |
| | | } |
| | | else |
| | | { |
| | | if (view != null) |
| | | { |
| | | if (view.Tag != null) |
| | | { |
| | | if (view.Tag.ToString() != "unlockpage") |
| | | { |
| | | view.RemoveFromParent(); |
| | | } |
| | | else |
| | | { |
| | | result = 2; |
| | | } |
| | | } |
| | | else |
| | | { |
| | | view.RemoveFromParent(); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | else |
| | | { |
| | | result = 2;//无法再后退,可以执行退到桌面 |
| | | } |
| | | }); |
| | | return result; |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 自定义日志输出 |
| | | /// </summary> |
| | | public static void Log(string msg) |
| | | { |
| | | #if DEBUG |
| | | Console.WriteLine(msg); |
| | | #endif |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 自定义日志输出 |
| | | /// </summary> |
| | | public static void Log(string tag,string msg) |
| | | { |
| | | #if DEBUG |
| | | Console.WriteLine($"{tag}-->{msg}"); |
| | | #endif |
| | | } |
| | | |
| | | |
| | | } |
| | | |
| | | |
| | | } |
| | | |
| | | } |