wxr
2024-09-24 691dbe24f5724f153e07947c7b75bdfea5f0b6d5
HDL_ON/UI/MainPage.cs
@@ -26,7 +26,7 @@
        /// <summary>
        /// 版本号
        /// </summary>
        public static string VersionString = "1.8.1";
        public static string VersionString = "2.7.0";
        ///// <summary>
        ///// 客户端类型
        ///// </summary>
@@ -116,11 +116,17 @@
            SPK.LightCCT,SPK.LightDimming,SPK.LightSwitch,SPK.LightRGB,
            SPK.CurtainRoller,SPK.CurtainSwitch,SPK.CurtainTrietex,SPK.CurtainDream,
            SPK.AcIr,SPK.AcStandard,SPK.HvacAC,
            SPK.FloorHeatStandard,SPK.HvacFloorHeat,
            SPK.FloorHeatStandard,SPK.HvacFloorHeat,SPK.HvacFloorHeatPanel,
            SPK.AirFreshStandard,SPK.HvacAirFresh,
            SPK.AirSwitch,
            SPK.PanelSocket,SPK.ElectricSocket,
            SPK.MechanicalArm,SPK.IpCam_Imou,
            SPK.GroupControl,
            SPK.AvMusic,
            SPK.MusicStandard,
            SPK.ElectricalTvHisense,
            SPK.OtherCommon,
        };
@@ -139,9 +145,14 @@
                    //_RoomNotSupportFunctionList.Add(SPK.MusicStandard);
                    //_RoomNotSupportFunctionList.Add(SPK.AvMusic);
                    _RoomNotSupportFunctionList.Add(SPK.AirSwitch);
                    //_RoomNotSupportFunctionList.Add(SPK.AirSwitchP3);
                    _RoomNotSupportFunctionList.Add(SPK.ElectricEnergy);
                    //_RoomNotSupportFunctionList.Add(SPK.OtherCommon);
                    _RoomNotSupportFunctionList.Add(SPK.OtherCommon);
                    _RoomNotSupportFunctionList.Add(SPK.SensorLight);
                    _RoomNotSupportFunctionList.Add(SPK.AcstParent);
                    _RoomNotSupportFunctionList.Add(SPK.AcstSub);
                    _RoomNotSupportFunctionList.Add(SPK.WaterHeaterJinmao);
                    _RoomNotSupportFunctionList.Add(SPK.InverterJinmao);
                    _RoomNotSupportFunctionList.AddRange(SPK.EnvironDeviceSpkList());
                    //_RoomNotSupportFunctionList.AddRange(SPK.ArmSensorSpkList());
                }
@@ -161,42 +172,28 @@
                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();
                    GoLoginPage(UserInfo.Current);
                }
                else
                {
                    //判断需不需要登录,有没有登录,或者登录是否过期,
                    if (UserInfo.Current == null || !UserInfo.Current.IsLogin)
                    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);
                Log("Error", "root erorr : " + ex.StackTrace);
            }
            finally
            {
@@ -220,36 +217,6 @@
            }
#if __ANDROID__
            new System.Threading.Thread(async () =>
            {
                int i = 10;
                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
        }
        /// <summary>
@@ -265,6 +232,8 @@
                }
            }
            catch { }
            OnAppConfig.Instance.LastLoginUserId = "";
            UserInfo.Current.ClearUserInfo();
            BaseView.BackgroundColor = CSS_Color.BackgroundColor;
            var fisrtView = new UI.UI1Login.LoginPage();
            fisrtView.BackgroundColor = CSS_Color.MainBackgroundColor;
@@ -477,11 +446,11 @@
                        UserBasePage.LoadPage();
                        BasePageView.PageIndex = 0;
                        if (isFirstOpen)
                        {
                            //启动密码验证
                            new AppUnlockPage().LoadPage(isFirstOpen);
                        }
                        //if (isFirstOpen)
                        //{
                        //    //启动密码验证
                        //    new AppUnlockPage().LoadPage(isFirstOpen);
                        //}
                        //主页加载完成,回调事件
                        pageShowEvent?.Invoke();
                        pageShowEvent = null;
@@ -506,18 +475,18 @@
            }).Start();
            try
            {
#if __ANDROID__
                Com.Chteam.Agent.BuglyAgentHelper.SetUserId(UserInfo.Current.AccountString);
#else
                Bugly.Bugly.SetUserIdentifier(UserInfo.Current.AccountString);
#endif
            }
            catch (Exception ex)
            {
                MainPage.Log("Bugly error");
            }
//            try
//            {
//#if __ANDROID__
//                //Com.Chteam.Agent.BuglyAgentHelper.SetUserId(UserInfo.Current.AccountString);
//#else
//                //Bugly.Bugly.SetUserIdentifier(UserInfo.Current.AccountString);
//#endif
//            }
//            catch (Exception ex)
//            {
//                MainPage.Log("Bugly error");
//            }
        }
        /// <summary>
@@ -529,72 +498,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;
@@ -607,7 +586,11 @@
        public static void Log(string msg)
        {
#if DEBUG
            if (msg.Contains("收到数据"))
            if (msg.Contains("收到")
                //|| msg.Contains("发送")
                //|| msg.Contains("接收")
                || true
                )
                Console.WriteLine(msg);
#endif
        }
@@ -621,6 +604,14 @@
#if DEBUG
            Console.WriteLine($"{tag}-->{msg}");
#endif
            if (tag == "error")
            {
                new System.Threading.Thread(async () =>
                {
                    await Common.AliyunLog.AliyunLogClient.PostLogs("自定义Error日志", msg);
                })
                { IsBackground = true }.Start();
            }
        }