New file |
| | |
| | | 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 |
| | | { |
| | | /// <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); |
| | | |
| | | #if DEBUG |
| | | //btnOnIcon.MouseUpEventHandler += (sender, e) => |
| | | //{ |
| | | // ESOnVideo.Current.Test(); |
| | | //}; |
| | | |
| | | //btnOnTitle.MouseUpEventHandler += (sender, e) => |
| | | //{ |
| | | // ESOnVideo.Current.Test(false); |
| | | //}; |
| | | |
| | | #endif |
| | | |
| | | 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(); |
| | | //HDLCommon.Current.CheckIfNeedForceUpdate(); |
| | | }; |
| | | 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等接口实现 |
| | | /// </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.androidUrl; |
| | | 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 AppVersionRes CheckAppVersion() |
| | | { |
| | | try |
| | | { |
| | | var result = new HttpServerRequest().CheckAppVersion(); |
| | | if (result.Code == StateCode.SUCCESS) |
| | | { |
| | | if (result.Data == null) |
| | | { |
| | | return null; |
| | | } |
| | | |
| | | var responeData = Newtonsoft.Json.JsonConvert.DeserializeObject<AppVersionRes>(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; } |
| | | } |
| | | } |