wxr
2023-08-24 e8147ceaf39253db2c9e6cfe023b505f71ec7ba5
OnPro/HDL_ON/UI/UI2/4-PersonalCenter/AboutOn/AboutOnPage.cs
@@ -17,10 +17,6 @@
        /// 
        /// </summary>
        FrameLayout bodyView;
        /// <summary>
        /// 版本更新ListCellView
        /// </summary>
        ListCellView versionUpdateView;
        /// <summary>
        /// 新版本的版本号,查询到新版本才赋值
@@ -65,25 +61,13 @@
                Y = Application.GetRealWidth(184),
                Height = Application.GetRealWidth(28),
                TextAlignment = TextAlignment.Center,
                Text = "On Pro",
                Text = "荣悦智能",
                TextColor = CSS_Color.FirstLevelTitleColor,
                TextSize = CSS_FontSize.EmphasisFontSize_Secondary,
                IsBold = true,
            };
            bodyView.AddChidren(btnOnTitle);
#if DEBUG
            //btnOnIcon.MouseUpEventHandler += (sender, e) =>
            //{
            //    ESOnVideo.Current.Test();
            //};
            //btnOnTitle.MouseUpEventHandler += (sender, e) =>
            //{
            //    ESOnVideo.Current.Test(false);
            //};
#endif
            Button btnOnVersion = new Button()
            {
@@ -109,60 +93,11 @@
            };
            bodyView.AddChidren(lineView);
            #region 功能介绍
            //var functionView = new ListCellView()
            //{
            //    Y = lineView.Bottom,
            //};
            //bodyView.AddChidren(functionView);
            //functionView.BtnTilte.TextID = StringId.FunctionIntroduced;
            //Action functionAction = () =>
            //{
            //    var mPage = new FunctionIntroductionPage();
            //    MainPage.BasePageView.AddChidren(mPage);
            //    mPage.LoadPage();
            //    MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
            //};
            //functionView.GoAction = functionAction;
            #endregion
            #region 投诉
            var complaintsView = new ListCellView()
            {
                Y = lineView.Bottom,
            };
            bodyView.AddChidren(complaintsView);
            complaintsView.BtnTilte.TextID = StringId.Complaints;
            Action complaintsAction = () =>
            {
                var mPage = new ComplaintsPage();
                MainPage.BasePageView.AddChidren(mPage);
                mPage.LoadPage();
                MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
            };
            complaintsView.GoAction = complaintsAction;
            #endregion
            #region 版本更新
            versionUpdateView = new ListCellView()
            {
                Y = complaintsView.Bottom,
            };
            bodyView.AddChidren(versionUpdateView);
            versionUpdateView.BtnTilte.TextID = StringId.VersionUpdate;
            Action versionUpdateAction = () =>
            {
                OpenUrl();
                //TestDDDDD();
                //HDLCommon.Current.CheckIfNeedForceUpdate();
            };
            versionUpdateView.GoAction = versionUpdateAction;
            #endregion
            #region 软件服务协议
            var serviceAgreementView = new ListCellView()
            {
                Y = versionUpdateView.Bottom,
                Y = lineView.Bottom,
            };
            bodyView.AddChidren(serviceAgreementView);
            serviceAgreementView.BtnTilte.TextID = StringId.UserAgreement;
@@ -188,43 +123,7 @@
            };
            #endregion
            privacyPolicyView.GoAction = privacyPolicyAction;
            CheckIfNeedUpdateAsync();
#if __IOS__
            #region 固件升级
            var firUpdateView = new ListCellView()
            {
                Y = privacyPolicyView.Bottom,
            };
            firUpdateView.BtnTilte.TextID = StringId.FirmwareUpdate;
            bodyView.AddChidren(firUpdateView);
            Action firmwareUpdateAction = () =>
            {
                var mPage = new HDL_ON.UI.UI2.PersonalCenter.AboutOn.FirmwareUpdateView();
                MainPage.BasePageView.AddChidren(mPage);
                mPage.ShowPage();
                MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
            };
            firUpdateView.GoAction = firmwareUpdateAction;
            #endregion
            #region HomeKit支持说明
            var homeKitView = new ListCellView()
            {
                Y = firUpdateView.Bottom,
            };
            bodyView.AddChidren(homeKitView);
            homeKitView.BtnTilte.TextID = StringId.SupportHomeKitNotes;
            Action homeKitSupportViewAction = () => {
                var mPage = new HDL_ON.UI.UI2.PersonalCenter.AboutOn.SupportHomeKitNotesPage();
                MainPage.BasePageView.AddChidren(mPage);
                mPage.ShowPage();
                MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
            };
            homeKitView.GoAction = homeKitSupportViewAction;
            #endregion
#endif
        }
@@ -244,175 +143,5 @@
            }
        }
        /// <summary>
        /// 检测是否需要更新
        /// Android等接口实现
        /// </summary>
        /// <returns></returns>
        void CheckIfNeedUpdateAsync(bool isTip = false)
        {
            new System.Threading.Thread(() =>
            {
                newAppVersion = CanUpdateAsync();
                Application.RunOnMainThread(() =>
                {
                    if (!string.IsNullOrEmpty(newAppVersion))
                    {
                        //发现新版本
                        versionUpdateView.BtnSubtitle.TextColor = CSS_Color.MainColor;
                        versionUpdateView.BtnSubtitle.Text = Language.StringByID(StringId.DiscoverNewVersion) + "(" + newAppVersion + ")";
                    }
                    else
                    {
                        //已经是最新版本
                        versionUpdateView.BtnSubtitle.TextColor = CSS_Color.PromptingColor1;
                        versionUpdateView.BtnSubtitle.Text = Language.StringByID(StringId.IsLatestVersion);
                    }
                });
            })
            { IsBackground = true }.Start();
        }
        /// <summary>
        /// 检查版本
        /// </summary>
        /// <returns></returns>
        string CanUpdateAsync()
        {
#if __IOS__
            try
            {
                var versionResult = RequestHttpsiOSAppVersionAsync();
                if (versionResult == null || versionResult.Results == null)
                {
                    return "";
                }
                var results = Newtonsoft.Json.Linq.JArray.Parse(versionResult.Results.ToString());
                if (results[0] == null)
                {
                    return "";
                }
                var newVersion = results[0]["version"]?.ToString();
                //var updateContent = results[0]["releaseNotes"]?.ToString();
                if (newVersion.CompareTo(MainPage.VersionString) > 0)
                {
                    newAppVersionUrl = Constant.URL_APPSTORE;
                    return newVersion;
                }
                return "";
            }
            catch
            {
                return "";
            }
#else
            try
            {
                var versionResult = CheckAppVersion();
                if (versionResult == null)
                {
                    return "";
                }
                var newVersion = versionResult.version;
                if (newVersion.CompareTo(MainPage.VersionString) > 0)
                {
                    newAppVersionUrl = versionResult.packageUrl;
                    return newVersion;
                }
                return "";
            }
            catch (Exception ex)
            {
                return "";
            }
#endif
        }
#if __IOS__
        /// <summary>
        /// 获取iOS-APP版本信息
        /// </summary>
        /// <returns>The https app version async.</returns>
        ResultPack RequestHttpsiOSAppVersionAsync()
        {
            try
            {
                var webClient = new WebClient { };
                var result = webClient.DownloadData("https://itunes.apple.com/cn/lookup?id=1532353432");
                if (result == null)
                {
                    return null;
                }
                return Newtonsoft.Json.JsonConvert.DeserializeObject<ResultPack>(Encoding.UTF8.GetString(result));
            }
            catch
            {
                return null;
            }
        }
        //#else
#endif
        /// <summary>
        /// 检测新版本
        /// </summary>
        /// <returns>The https app version async.</returns>
        private AppVersionResNew CheckAppVersion()
        {
            try
            {
                var result = new HttpServerRequest().CheckAppVersion();
                if (result.Code == StateCode.SUCCESS)
                {
                    if (result.Data == null)
                    {
                        return null;
                    }
                    var responeData = Newtonsoft.Json.JsonConvert.DeserializeObject<AppVersionResNew>(result.Data.ToString());
                    return responeData;
                }
                return null;
            }
            catch (Exception ex)
            {
                return null;
            }
        }
        int updateType = 0;
        void TestDDDDD()
        {
            updateType = 1;
            UpdateDialogInfo forceUpdateInfo = new UpdateDialogInfo()
            {
                UpdateType = updateType,
                NewVersionUrl = Constant.URL_APPSTORE,
                NewVersion = "1.0.0925",
                ReasonStr = "1、首页全新改版设计,UI更清晰 \n2、修复BUG \n3、新增音箱功能 \n3、新增音箱功能 \n3、新增音箱功能 \n3、新增音箱功能 \n3、新增音箱功能 \n3、新增音箱功能 \n3、新增音箱功能 \n3、新增音箱功能 \n3、新增音箱功能 \n3、新增音箱功能 \n3、新增音箱功能 \n3、新增音箱功能 \n3、新增音箱功能"
            };
            HDLCommon.Current.ShowForceUpdateDialog(forceUpdateInfo);
        }
    }
    /// <summary>
    /// 苹果商店查询响应包格式
    /// </summary>
    [System.Serializable]
    public class ResultPack
    {
        public int ResultCount { get; set; }
        public object Results { get; set; }
    }
}