From 0f2e0147e8990e913d16d99bc1b94fb6bc53abd7 Mon Sep 17 00:00:00 2001 From: 陈嘉乐 <cjl@hdlchina.com.cn> Date: 星期四, 03 十二月 2020 15:35:42 +0800 Subject: [PATCH] 2020-12-03-1 --- HDL_ON/UI/UI2/4-PersonalCenter/AboutOn/AboutOnPage.cs | 331 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 331 insertions(+), 0 deletions(-) diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/AboutOn/AboutOnPage.cs b/HDL_ON/UI/UI2/4-PersonalCenter/AboutOn/AboutOnPage.cs new file mode 100644 index 0000000..6ad72a9 --- /dev/null +++ b/HDL_ON/UI/UI2/4-PersonalCenter/AboutOn/AboutOnPage.cs @@ -0,0 +1,331 @@ +锘縰sing System; +using Shared; +using HDL_ON.UI.CSS; +using System.Net; +using System.Text; +using HDL_ON.DAL.Server; +using System.Threading.Tasks; + +namespace HDL_ON.UI +{ + /// <summary> + /// 鍏充簬椤甸潰 + /// </summary> + public class AboutOnPage : FrameLayout + { + /// <summary> + /// + /// </summary> + FrameLayout bodyView; + /// <summary> + /// 鐗堟湰鏇存柊ListCellView + /// </summary> + ListCellView versionUpdateView; + + /// <summary> + /// 鏂扮増鏈殑鐗堟湰鍙凤紝鏌ヨ鍒版柊鐗堟湰鎵嶈祴鍊� + /// </summary> + string newAppVersion; + /// <summary> + /// 鏂扮増鏈殑涓嬭浇鍦板潃 + /// iOS 榛樿涓鸿嫻鏋滃晢搴楀湴鍧� + /// Android 浜戠杩斿洖鍦板潃 + /// </summary> + string newAppVersionUrl = ""; + + /// <summary> + /// + /// </summary> + public AboutOnPage() + { + bodyView = this; + } + + /// <summary> + /// + /// </summary> + public void LoadPage() + { + new TopViewDiv(bodyView, Language.StringByID(StringId.About)).LoadTopView(); + + Button btnOnIcon = new Button() + { + Gravity = Gravity.CenterHorizontal, + Y = Application.GetRealWidth(106), + Width = Application.GetRealWidth(58), + Height = Application.GetRealWidth(58), + UnSelectedImagePath = "OnIcon.png", + }; + bodyView.AddChidren(btnOnIcon); + + Button btnOnTitle = new Button() + { + //Gravity = Gravity.CenterHorizontal, + Y = Application.GetRealWidth(184), + Height = Application.GetRealWidth(28), + TextAlignment = TextAlignment.Center, + Text = "ON+", + TextColor = CSS_Color.FirstLevelTitleColor, + TextSize = CSS_FontSize.EmphasisFontSize_Secondary, + IsBold = true, + }; + bodyView.AddChidren(btnOnTitle); + + Button btnOnVersion = new Button() + { + Y = btnOnTitle.Bottom, + Height = Application.GetRealWidth(25), + TextAlignment = TextAlignment.Center, + TextColor = CSS_Color.TextualColor, + TextSize = CSS_FontSize.PromptFontSize_FirstLevel, + Text = Language.StringByID(StringId.VersionNumber) + " " + MainPage.VersionString, + }; + bodyView.AddChidren(btnOnVersion); + + + var lineView = new FrameLayout() + { + Y = Application.GetRealHeight(281), + Height = Application.GetRealHeight(1), + BackgroundColor = CSS_Color.DividingLineColor, + }; + 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 = functionView.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(); + }; + versionUpdateView.GoAction = versionUpdateAction; + #endregion + + CheckIfNeedUpdateAsync(); + } + + + /// <summary> + /// 鍒ゆ柇鏄惁闇�瑕佽皟鏁存柊鐗堟湰涓嬭浇鍦板潃 + /// </summary> + void OpenUrl() + { + if (!string.IsNullOrEmpty(newAppVersion)) + { + HDLUtils.OpenUrl(newAppVersionUrl); + } + else + { + Utlis.ShowTip(Language.StringByID(StringId.IsLatestVersion)); + } + } + + /// <summary> + /// 妫�娴嬫槸鍚﹂渶瑕佹洿鏂� + /// Android绛夋帴鍙e疄鐜� + /// </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 = GetAndroidAppVersion(); + if (versionResult == null) + { + return ""; + } + var newVersion = versionResult.NewVersion; + if (newVersion.CompareTo(MainPage.VersionString) > 0) + { + newAppVersionUrl = versionResult.NewVersionUrl; + 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 + + /// <summary> + /// 鑾峰彇 Android-APP 鐗堟湰淇℃伅 + /// </summary> + /// <returns>The https app version async.</returns> + private APPVersion GetAndroidAppVersion() + { + try + { + var result = new HttpServerRequest().GetAppVersion(); + if (result.Code == StateCode.SUCCESS) + { + if (result.Data == null) + { + return null; + } + + var responeData = Newtonsoft.Json.JsonConvert.DeserializeObject<APPVersion>(result.Data.ToString()); + return responeData; + } + return null; + } + catch (Exception ex) + { + return null; + } + } + + +#endif + + int updateType = 0; + void TestDDDDD() + { + updateType = 1; + + ForceUpdateInfo forceUpdateInfo = new ForceUpdateInfo() + { + UpdateType = updateType, + NewVersionUrl = Constant.URL_APPSTORE, + NewVersion = "1.0.0925", + ReasonStr = "1銆侀椤靛叏鏂版敼鐗堣璁★紝UI鏇存竻鏅� \n2銆佷慨澶岯UG \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; } + } +} -- Gitblit v1.8.0