using 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 { /// /// 关于页面 /// public class AboutOnPage : FrameLayout { /// /// /// FrameLayout bodyView; /// /// 新版本的版本号,查询到新版本才赋值 /// string newAppVersion; /// /// 新版本的下载地址 /// iOS 默认为苹果商店地址 /// Android 云端返回地址 /// string newAppVersionUrl = ""; /// /// 版本更新ListCellView /// ListCellView versionUpdateView; /// /// /// public AboutOnPage() { bodyView = this; } /// /// /// public void LoadPage() { new TopViewDiv(bodyView, Language.StringByID(StringId.About)).LoadTopView(); this.BackgroundColor = CSS_Color.MainBackgroundColor; 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 = "荣悦智能", 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); if(HttpUtil.GlobalRequestHttpsHost == "https://test-gz.hdlcontrol.com") { btnOnVersion.Text += "(Test Server)"; } var lineView = new FrameLayout() { Y = Application.GetRealHeight(281), Height = Application.GetRealHeight(1), BackgroundColor = CSS_Color.DividingLineColor, }; bodyView.AddChidren(lineView); #region 版本更新 versionUpdateView = new ListCellView() { Y = lineView.Bottom, }; #if __ANDROID__ bodyView.AddChidren(versionUpdateView); CheckIfNeedUpdateAsync(false); #endif versionUpdateView.BtnTilte.TextID = StringId.VersionUpdate; Action versionUpdateAction = () => { OpenUrl(); }; versionUpdateView.GoAction = versionUpdateAction; #endregion #region 软件服务协议 var serviceAgreementView = new ListCellView() { #if __ANDROID__ Y = versionUpdateView.Bottom, #else Y = lineView.Bottom, #endif }; bodyView.AddChidren(serviceAgreementView); serviceAgreementView.BtnTilte.TextID = StringId.UserAgreement; Action serviceAgreementAction = () => { string url = Constant.URL_USERAGREEMENT; string titleStr = Language.StringByID(StringId.UserAgreement); new WebViewDialog().LoadPageWithdrawalConsent(titleStr, url); }; serviceAgreementView.GoAction = serviceAgreementAction; #endregion #region 用户信息保护协议 var privacyPolicyView = new ListCellView() { Y = serviceAgreementView.Bottom, }; bodyView.AddChidren(privacyPolicyView); privacyPolicyView.BtnTilte.TextID = StringId.PrivacyPolicy; Action privacyPolicyAction = () => { string url = Constant.URL_PRIVACYPOLICY; string titleStr = Language.StringByID(StringId.PrivacyPolicy); new WebViewDialog().LoadPageWithdrawalConsent(titleStr, url); }; #endregion privacyPolicyView.GoAction = privacyPolicyAction; } /// /// 判断是否需要调整新版本下载地址 /// void OpenUrl() { if (!string.IsNullOrEmpty(newAppVersion)&& newAppVersion.Contains("http")) { HDLUtils.OpenUrl(newAppVersionUrl); } else { Utlis.ShowTip(Language.StringByID(StringId.IsLatestVersion)); } } ///         /// 检测是否需要更新         /// Android等接口实现         ///         ///         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(); } ///         /// 检查版本         ///         ///         string CanUpdateAsync()         {             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 "";             }         } ///         /// 检测新版本         ///         /// The https app version async.         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(result.Data.ToString()); return responeData; } return null; } catch (Exception ex) { return null; } } } }