From 627093aca723d4bfb971b97c828e8b3a22dbda78 Mon Sep 17 00:00:00 2001
From: 陈嘉乐 <cjl@hdlchina.com.cn>
Date: 星期五, 17 七月 2020 17:26:19 +0800
Subject: [PATCH] 2020-07-17-1
---
ZigbeeApp/Shared/Phone/UserCenter/Abount/AbountForm.cs | 647 ++++++++++++++++++++++++++++++++--------------------------
1 files changed, 353 insertions(+), 294 deletions(-)
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Abount/AbountForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Abount/AbountForm.cs
index 9dd6fd2..aa44917 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Abount/AbountForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Abount/AbountForm.cs
@@ -1,10 +1,9 @@
锘縰sing System;
using System.Collections.Generic;
using System.Net;
-using System.Runtime.Remoting.Contexts;
using System.Text;
using Shared.Common;
-using Shared.Phone.Device.CommonForm;
+
namespace Shared.Phone.UserCenter.Abount
{
/// <summary>
@@ -12,378 +11,317 @@
/// </summary>
public class AbountForm : EditorCommonForm
{
- #region **鍙橀噺*****************************
+ #region 鈼� 鍙橀噺____________________________
/// <summary>
/// 鏄惁姝e湪鏇存柊涓�
/// </summary>
- public bool isUpdating=false;
+ public bool isUpdating;
/// <summary>
/// The web client.
/// </summary>
- public WebClient webClient=new WebClient { };
- /// <summary>
- /// 杩涘害鏉�
- /// </summary>
- public HorizontalSeekBar seekBar;
- /// <summary>
- /// 杩涘害鐧惧垎姣�
- /// </summary>
- public Button seekBarTitle;
- /// <summary>
- /// 鍙栨秷涓嬭浇鎸夐挳
- /// </summary>
- public Button cancelDownLoadBtn;
- /// <summary>
- /// 鏇存柊鎸夐挳
- /// </summary>
- public Button updateBtn;
+ public WebClient webClient = new WebClient { };
/// <summary>
/// 鏇存柊涓�
/// </summary>
- public Button updatingBtn;
+ public NormalViewControl btnUpdating;
/// <summary>
- /// The instance.
+ /// distributedMark
/// </summary>
- public static AbountForm instance;
+ public string distributedMark;
+ /// <summary>
+ /// updateRow
+ /// </summary>
+ public FrameRowControl rowUpdate;
+ /// <summary>
+ /// 涓嬭浇瀹夊崜apk鐨刡yte闀垮害
+ /// </summary>
+ public long ApkBytesTotalLength = 0;
+
#endregion
+
/// <summary>
- /// Initializes a new instance of the <see cref="T:Shared.Phone.UserCenter.Abount.AbountForm"/> class.
+ /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓)
/// </summary>
- public AbountForm()
+ public void ShowForm()
{
- instance = this;
+ //璁剧疆鏍囬淇℃伅
+ base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uAboutMe));
+ //鍒濆鍖栦腑閮ㄦ帶浠�
+ this.InitMiddleFrame();
}
- /// <summary>
- /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓)
- /// </summary>
- public void ShowForm()
- {
- //璁剧疆鏍囬淇℃伅
- base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uVersionInformation));
- //鍒濆鍖栦腑閮ㄦ帶浠�
- this.InitMiddleFrame();
- }
/// <summary>
/// Closes the form.
/// </summary>
- public override void CloseForm()
+ public override void CloseFormBefore()
{
#if Android
- if(isUpdating==true)
+ SetDownLoadBtnNoVisible();
+ CancelDownLoadApkAsync();
+ base.CloseFormBefore();
+#elif iOS
+ base.CloseFormBefore();
+#endif
+ }
+ /// <summary>
+ /// 鍒濆鍖栦腑閮ㄦ帶浠�
+ /// </summary>
+ private void InitMiddleFrame()
+ {
+ //澶撮儴鐧借壊鑳屾櫙
+ var frameLogo = new FrameLayoutBase();
+ frameLogo.Height = Application.GetRealHeight(484);
+ frameLogo.BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor;
+ bodyFrameLayout.AddChidren(frameLogo);
+ //鍥炬爣鐨勫鍣�
+ var frameLogoBackground = new FrameLayoutBase();
+ frameLogoBackground.Y = Application.GetRealHeight(104);
+ frameLogoBackground.Width = this.GetPictrueRealSize(167);
+ frameLogoBackground.Height = this.GetPictrueRealSize(167);
+ frameLogoBackground.Gravity = Gravity.CenterHorizontal;
+ frameLogoBackground.BackgroundColor = ZigbeeColor.Current.GXCButtonBlackSelectedColor;
+ frameLogoBackground.Radius = (uint)Application.GetRealHeight(37);
+ frameLogo.AddChidren(frameLogoBackground);
+ //鍥炬爣
+ var btnLogo = new IconViewControl(144);
+ btnLogo.UnSelectedImagePath = "Account/Logo_White.png";
+ btnLogo.Gravity = Gravity.Center;
+ frameLogoBackground.AddChidren(btnLogo);
+ //HDL Home
+ var btnName = new NormalViewControl(700, 60, true);
+ btnName.Y = Application.GetRealHeight(294);
+ btnName.Gravity = Gravity.CenterHorizontal;
+ btnName.Text = "HDL Home";
+ btnName.TextSize = 15;
+ btnName.TextColor = ZigbeeColor.Current.GXCTextDeepBlackColor;
+ btnName.TextAlignment = TextAlignment.Center;
+ frameLogo.AddChidren(btnName);
+ //鐗堟湰鍙�
+ var btnVersion = new NormalViewControl(700, 50, true);
+ btnVersion.Y = Application.GetRealHeight(366);
+ btnVersion.Gravity = Gravity.CenterHorizontal;
+ btnVersion.Text = $"{Language.StringByID(R.MyInternationalizationString.VersionCode)} {CommonPage.CodeIDString}";
+ btnVersion.TextSize = 12;
+ btnVersion.TextColor = ZigbeeColor.Current.GXCTextGrayColor;
+ btnVersion.TextAlignment = TextAlignment.Center;
+ frameLogo.AddChidren(btnVersion);
+ //鍒楄〃鎺т欢
+ var listView = new FrameListControl(12);
+ listView.Y = frameLogo.Bottom + Application.GetRealHeight(23);
+ listView.BackgroundColor = UserCenterColor.Current.White;
+ listView.Height = Application.GetRealHeight(500);
+ bodyFrameLayout.AddChidren(listView);
+ //鏈嶅姟鍗忚
+ //var rowService = new FrameRowControl(listView.rowSpace / 2);
+ //listView.AddChidren(rowService);
+ //rowService.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.SLA), 400);
+ //rowService.AddRightArrow();
+ //rowService.AddBottomLine();
+ //鐗堟湰鏇存柊
+ this.rowUpdate = new FrameRowControl(listView.rowSpace / 2);
+ listView.AddChidren(rowUpdate);
+ rowUpdate.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.UpdateVersion), 400);
+ rowUpdate.AddRightArrow();
+ var btnRightView = rowUpdate.AddMostRightView("", 400);
+ rowUpdate.CanClick = false;
+ rowUpdate.ButtonClickEvent += (sender, e) =>
{
- var alert = new Alert(Language.StringByID(R.MyInternationalizationString.TIP), Language.StringByID(R.MyInternationalizationString.CancelUpdating), Language.StringByID(R.MyInternationalizationString.Cancel), Language.StringByID(R.MyInternationalizationString.Confrim));
- alert.Show();
- alert.ResultEventHandler += (send, e) =>
+ UpdateVersion();
+ };
+ //璋冩暣妗屽竷楂樺害
+ listView.AdjustRealHeight(Application.GetRealHeight(23));
+
+ //鏇存柊涓�
+ this.btnUpdating = new NormalViewControl(556, 106, true);
+ btnUpdating.Y = Application.GetRealHeight(994);
+ btnUpdating.Radius = (uint)Application.GetRealHeight(53);
+ btnUpdating.BackgroundColor = ZigbeeColor.Current.GXCDailogBackGroundColor;
+ btnUpdating.TextID = R.MyInternationalizationString.Updating;
+ btnUpdating.TextSize = 15;
+ btnUpdating.TextColor = ZigbeeColor.Current.GXCTextWhiteColor;
+ btnUpdating.Gravity = Gravity.CenterHorizontal;
+ btnUpdating.TextAlignment = TextAlignment.Center;
+ bodyFrameLayout.AddChidren(btnUpdating);
+
+ //璁剧疆杩涘害鎺т欢涓嶅彲瑙�
+ this.SetDownLoadBtnNoVisible();
+
+ //妫�娴嬫柊鐗堟湰
+ HdlThreadLogic.Current.RunThread(async () =>
+ {
+ var result = await CanUpdateAsync();
+ HdlThreadLogic.Current.RunMain(() =>
{
- if (e)
+ if (result)
{
- updateBtn.Visible = true;
- SetDownLoadBtnNoVisible();
- CommonPage.CancelDownLoadApkAsync();
- base.CloseForm();
+ //鏇存柊鏈�鏂扮増
+ btnRightView.TextID = R.MyInternationalizationString.Update;
+ rowUpdate.CanClick = true;
}
else
{
- return;
+ btnRightView.TextID = R.MyInternationalizationString.TheAppVersionIsNewest;
}
- };
- }
- else
- {
- Phone.UserView.HomePage.Instance.ScrollEnabled = true;
- base.CloseForm();
- }
-#elif iOS
- base.CloseForm();
-#endif
+ });
+
+ });
}
- /// <summary>
- /// 鍒濆鍖栦腑閮ㄦ帶浠�
- /// </summary>
- private void InitMiddleFrame()
- {
- var logoBtn = new Button()
- {
- Width = Application.GetMinRealAverage(270),
- Height = Application.GetMinRealAverage(270),
- Y = Application.GetRealHeight(100),
- UnSelectedImagePath = "Logo/Logo.png",
- Gravity = Gravity.CenterHorizontal
- };
- bodyFrameLayout.AddChidren(logoBtn);
- var nameBtn = new Button()
- {
- Width = Application.GetMinRealAverage(700),
- Height = Application.GetMinRealAverage(100),
- Y = Application.GetRealHeight(100)+logoBtn.Bottom,
- Gravity = Gravity.CenterHorizontal,
- Text="HDL Home",
- TextSize=20,
- TextColor=ZigbeeColor.Current.GXCTextBlackColor
- };
- bodyFrameLayout.AddChidren(nameBtn);
-
- var versionBtn = new Button()
- {
- Width = Application.GetMinRealAverage(700),
- Height = Application.GetMinRealAverage(100),
- Y = Application.GetRealHeight(10) + nameBtn.Bottom,
- Gravity = Gravity.CenterHorizontal,
- Text = $"v{CommonPage.CodeIDString}",
- TextSize = 14,
- TextColor = ZigbeeColor.Current.GXCPlaceHolderTextColor
- };
- bodyFrameLayout.AddChidren(versionBtn);
-
- updateBtn = new Button()
- {
- Y= Application.GetRealHeight(50)+versionBtn.Bottom,
- Width = Application.GetMinRealAverage(700),
- Gravity = Gravity.CenterHorizontal,
- Height =Application.GetRealHeight(Shared.Common.CommonPage.ButtonHeight),
- TextID=R.MyInternationalizationString.Update,
- TextColor=ZigbeeColor.Current.GXCTextBlueColor
- };
- bodyFrameLayout.AddChidren(updateBtn);
- updateBtn.MouseUpEventHandler += GetVersion;
-
- seekBar = new HorizontalSeekBar()
- {
- Y = updateBtn.Bottom + Application.GetRealHeight(50),
- Width = Application.GetRealWidth(750),
- Height = Application.GetRealHeight(80),
- Gravity = Gravity.CenterHorizontal,
- BackgroundColor = ZigbeeColor.Current.GXCSliderUnSelectedColor,
- ThumbColor = 0x00000000,
- ProgressColor = ZigbeeColor.Current.GXCButtonBlueColor,
- Max = 100,
- Progress = 0,
- IsCanScrolled=false,
- IsCanMove=false
- };
- bodyFrameLayout.AddChidren(seekBar);
-
- seekBarTitle = new Button()
- {
- Y = updateBtn.Bottom + Application.GetRealHeight(50),
- X= seekBar.Right+Application.GetRealWidth(10),
- Width = Application.GetRealWidth(150),
- Height = Application.GetRealHeight(80),
- Text = $"{seekBar.Progress}%",
- TextAlignment=TextAlignment.CenterLeft,
- TextColor = ZigbeeColor.Current.GXCTextBlackColor,
- };
- bodyFrameLayout.AddChidren(seekBarTitle);
-
- updatingBtn = new Button()
- {
- Y = seekBar.Bottom + Application.GetRealHeight(20),
- Width = Application.GetRealWidth(300),
- Height = Application.GetRealHeight(80),
- TextID= R.MyInternationalizationString.Updating,
- TextAlignment = TextAlignment.Center,
- TextColor = ZigbeeColor.Current.GXCTextBlackColor,
- Gravity=Gravity.CenterHorizontal
- };
- bodyFrameLayout.AddChidren(updatingBtn);
- cancelDownLoadBtn = new Button()
- {
- TextID = R.MyInternationalizationString.Cancel,
- TextColor = ZigbeeColor.Current.GXCTextBlueColor,
- Height = Application.GetRealHeight(80),
- Width = Application.GetRealWidth(500),
- Gravity = Gravity.CenterHorizontal,
- Y = updatingBtn.Bottom + Application.GetRealHeight(500)
- };
- bodyFrameLayout.AddChidren(cancelDownLoadBtn);
-#if Android
- cancelDownLoadBtn.MouseUpEventHandler += CancelDownLoadApk;
-#endif
- SetDownLoadBtnNoVisible();
- }
/// <summary>
/// 璁剧疆杩涘害鎺т欢涓嶅彲瑙�
/// </summary>
- public void SetDownLoadBtnNoVisible()
+ private void SetDownLoadBtnNoVisible()
{
- Phone.UserView.HomePage.Instance.ScrollEnabled = true;
isUpdating = false;
- updateBtn.Visible = true;
- seekBar.Visible = seekBarTitle.Visible = cancelDownLoadBtn.Visible = updatingBtn.Visible = false;
+ btnUpdating.Visible = false;
}
/// <summary>
/// 璁剧疆杩涘害鎺т欢鍙
/// </summary>
- public void SetDownLoadBtnVisible()
+ private void SetDownLoadBtnVisible()
{
- Phone.UserView.HomePage.Instance.ScrollEnabled = false;
isUpdating = true;
- updateBtn.Visible = false;
- seekBar.Visible = seekBarTitle.Visible = cancelDownLoadBtn.Visible = updatingBtn.Visible = true;
+ btnUpdating.Visible = true;
+ rowUpdate.CanClick = false;
}
+
/// <summary>
- /// Gets the version.
+ /// 妫�鏌ョ増鏈�
/// </summary>
- /// <param name="sender">Sender.</param>
- /// <param name="e">E.</param>
- private async void GetVersion(object sender, MouseEventArgs e)
+ /// <returns></returns>
+ private async System.Threading.Tasks.Task<bool> CanUpdateAsync()
{
#if iOS
- try
- {
- CommonPage.Loading.Start();
- var versionResult = await Shared.Common.CommonPage.Instance.RequestHttpsiOSAppVersionAsync();
+ try
+ {
+ var versionResult = await RequestHttpsiOSAppVersionAsync();
if (versionResult == null || versionResult.Results == null)
{
- CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.UpdateAppFail);
- return;
+ return false;
}
var results = Newtonsoft.Json.Linq.JArray.Parse(versionResult.Results.ToString());
if (results[0] == null)
{
- CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.UpdateAppFail);
- return;
+ return false;
}
var newVersion = results[0]["version"]?.ToString();
var updateContent = results[0]["releaseNotes"]?.ToString();
- if (newVersion != CommonPage.CodeIDString)
+ if (newVersion.CompareTo(CommonPage.CodeIDString) > 0)
{
- Application.RunOnMainThread(() =>
- {
- var alert = new Alert(Language.StringByID(R.MyInternationalizationString.UpdateContent), updateContent, Language.StringByID(R.MyInternationalizationString.Cancel), Language.StringByID(R.MyInternationalizationString.Confrim));
- alert.Show();
- alert.ResultEventHandler += (sender1, e1) =>
- {
- if (e1)
- {
- CommonPage.Instance.OpenUrl();
- }
- };
- });
+ return true;
}
- else
- {
- Application.RunOnMainThread(() =>
- {
- var alert = new Alert(Language.StringByID(R.MyInternationalizationString.TIP), Language.StringByID(R.MyInternationalizationString.TheAppVersionIsNewest), Language.StringByID(R.MyInternationalizationString.Close));
- alert.Show();
- });
- }
+ return false;
}
catch
{
+ return false;
+ }
- }
- finally
- {
- CommonPage.Loading.Hide();
- }
#elif Android
try
{
- CommonPage.Loading.Start();
- var versionResult = await CommonPage.Instance.RequestHttpsAndroidAppVersionAsync();
+ var versionResult = await RequestHttpsAndroidAppVersionAsync();
if (versionResult == null)
{
- CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.UpdateAppFail);
- return;
+ return false;
}
- if (int.Parse(versionResult.FirmwareVersion.Replace(".","")) > int.Parse(CommonPage.CodeIDString.Replace(".","")))
+ if (int.Parse(versionResult.FirmwareVersion.Replace(".", "")) > int.Parse(CommonPage.CodeIDString.Replace(".", "")))
{
- var alert = new Alert(Language.StringByID(R.MyInternationalizationString.UpdateContent), versionResult.Remarks, Language.StringByID(R.MyInternationalizationString.Cancel), Language.StringByID(R.MyInternationalizationString.Confrim));
- alert.Show();
- alert.ResultEventHandler += async (sender1, e1) =>
- {
- if (e1)
- {
- try
- {
- SetDownLoadBtnVisible();
- var requestObj = new SendDataToServer.DownLoadAndroidApk
- {
- RequestVersion = CommonPage.RequestVersion,
- DistributedMark = versionResult.DistributedMark
- };
- var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject(requestObj);
-
- var bytesTotalLengthResult = await CommonPage.Instance.RequestHttpsZigbeeAsync("FirmwareMana/DownloadPlatformUploadFirmwarePreLength", Encoding.UTF8.GetBytes(requestJson));
- if (bytesTotalLengthResult == null || bytesTotalLengthResult.ResponseData == null)
- {
- SetDownLoadBtnNoVisible();
- CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.UpdateAppFail);
- return;
- }
- var bytesTotalLength = Newtonsoft.Json.JsonConvert.DeserializeObject<long>(bytesTotalLengthResult.ResponseData.ToString());
- if (bytesTotalLength == 0)
- {
- SetDownLoadBtnNoVisible();
- CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.UpdateAppFail);
- return;
- }
- CommonPage.ApkBytesTotalLength = bytesTotalLength;
- var bytes = await CommonPage.Instance.DownLoadApkAsync("FirmwareMana/DownloadPlatformUploadFirmware", Encoding.UTF8.GetBytes(requestJson));
- if (bytes == null)
- {
- SetDownLoadBtnNoVisible();
- CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.UpdateAppFail);
- return;
- }
- if(bytes.ToString().Contains("DownloadFail"))
- {
- SetDownLoadBtnNoVisible();
- CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.FailedPleaseTryAgain);
- return;
- }
- var path = System.IO.Path.Combine(Shared.IO.FileUtils.RootPath, "home.apk");
- Shared.IO.FileUtils.WriteFileByBytes(path, bytes);
- Install(Shared.Application.Activity);
- }
- catch(Exception ex)
- {
- SetDownLoadBtnNoVisible();
- System.Console.WriteLine($"涓嬭浇澶辫触--{ex.Message}");
- }
- }
- };
+ distributedMark = versionResult.DistributedMark;
+ return true;
}
- else
- {
- var alert = new Alert(Language.StringByID(R.MyInternationalizationString.TIP), Language.StringByID(R.MyInternationalizationString.TheAppVersionIsNewest), Language.StringByID(R.MyInternationalizationString.Close));
- alert.Show();
- }
+ return false;
}
catch (Exception ex)
{
- SetDownLoadBtnNoVisible();
- System.Console.WriteLine(ex.Message);
- }
- finally
- {
- CommonPage.Loading.Hide();
+ return false;
}
#endif
}
-#if Android
/// <summary>
- /// Cancels down load apk.
+ /// 鏇存柊
/// </summary>
- private void CancelDownLoadApk(object sender,MouseEventArgs mouseEventArgs)
+ private async void UpdateVersion()
{
- var alert = new Alert(Language.StringByID(R.MyInternationalizationString.TIP), Language.StringByID(R.MyInternationalizationString.CancelUpdating), Language.StringByID(R.MyInternationalizationString.Cancel), Language.StringByID(R.MyInternationalizationString.Confrim));
- alert.Show();
- alert.ResultEventHandler += (send, e) =>
- {
- if (e)
- {
- isUpdating = false;
- updateBtn.Visible = true;
- SetDownLoadBtnNoVisible();
- CommonPage.CancelDownLoadApkAsync();
- }
- };
+#if iOS
+ OpenUrl();
+#elif Android
+ try
+ {
+ var requestObj = new SendDataToServer.DownLoadAndroidApk
+ {
+ RequestVersion = CommonPage.RequestVersion,
+ DistributedMark = distributedMark
+ };
+ var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject(requestObj);
+
+ var bytesTotalLengthResult = await CommonPage.Instance.RequestHttpsZigbeeAsync("FirmwareMana/DownloadPlatformUploadFirmwarePreLength", Encoding.UTF8.GetBytes(requestJson));
+ if (bytesTotalLengthResult == null || bytesTotalLengthResult.ResponseData == null)
+ {
+ CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.UpdateAppFail);
+ return;
+ }
+ var bytesTotalLength = Newtonsoft.Json.JsonConvert.DeserializeObject<long>(bytesTotalLengthResult.ResponseData.ToString());
+ if (bytesTotalLength == 0)
+ {
+ CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.UpdateAppFail);
+ return;
+ }
+ ApkBytesTotalLength = bytesTotalLength;
+ var bytes = await DownLoadApkAsync("FirmwareMana/DownloadPlatformUploadFirmware", Encoding.UTF8.GetBytes(requestJson));
+ if (bytes == null)
+ {
+ CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.UpdateAppFail);
+ return;
+ }
+ if (bytes.ToString().Contains("DownloadFail"))
+ {
+ CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.FailedPleaseTryAgain);
+ return;
+ }
+ var path = System.IO.Path.Combine(Shared.IO.FileUtils.RootPath, "home.apk");
+ Shared.IO.FileUtils.WriteFileByBytes(path, bytes);
+ Install(Shared.Application.Activity);
+ }
+ catch (Exception ex)
+ {
+ System.Console.WriteLine($"涓嬭浇澶辫触--{ex.Message}");
+ }
+#endif
}
+
+#if iOS
+ /// <summary>
+ /// 鑾峰彇iOS-APP鐗堟湰淇℃伅
+ /// </summary>
+ /// <returns>The https app version async.</returns>
+ public async System.Threading.Tasks.Task<Common.ResponseEntity.ResultPack> RequestHttpsiOSAppVersionAsync()
+ {
+ try
+ {
+ var webClient = new WebClient { };
+ var result = await webClient.DownloadDataTaskAsync("https://itunes.apple.com/lookup?id=1461693569");
+ if (result == null)
+ {
+ return null;
+ }
+ return Newtonsoft.Json.JsonConvert.DeserializeObject<Common.ResponseEntity.ResultPack>(Encoding.UTF8.GetString(result));
+ }
+ catch
+ {
+ return null;
+ }
+ }
+ /// <summary>
+ /// 璺宠浆鍒癆PP Store
+ /// </summary>
+ public void OpenUrl()
+ {
+ Uri url = new Uri("https://itunes.apple.com/cn/app/hdl-home/id1461693569?mt=8");
+ UIKit.UIApplication.SharedApplication.OpenUrl(url);
+ }
+#elif Android
+
/// <summary>
/// Install the specified context.
/// </summary>
@@ -411,6 +349,127 @@
}
context.StartActivity(intent);
}
+
+ /// <summary>
+ /// 鑾峰彇 Android-APP 鐗堟湰淇℃伅
+ /// </summary>
+ /// <returns>The https app version async.</returns>
+ private async System.Threading.Tasks.Task<Common.ResponseEntity.ApkInfoOBJ> RequestHttpsAndroidAppVersionAsync()
+ {
+ try
+ {
+ var requestOBJ = new SendDataToServer.GetAndroidApkInfoOBJ
+ {
+ Name = "ZigbeeApp",
+ RequestVersion = CommonPage.CodeIDString
+ };
+ var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject(requestOBJ);
+ var result = await CommonPage.Instance.RequestHttpsZigbeeAsync("FirmwareMana/DetectionPlatformUploadFirmware", System.Text.Encoding.UTF8.GetBytes(requestJson));
+ if (result == null)
+ {
+ return null;
+ }
+ if (result.StateCode.ToUpper() == "SUCCESS")
+ {
+ if (result.ResponseData == null)
+ {
+ return null;
+ }
+
+ var responeData = Newtonsoft.Json.JsonConvert.DeserializeObject<Common.ResponseEntity.ApkInfoRes>(result.ResponseData.ToString());
+ if (responeData == null || responeData.pageData == null || responeData.pageData.Count == 0)
+ {
+ return null;
+ }
+ int MaxIndex = 0;
+ int NewVersion = 0;
+ for (int i = 0; i < responeData.pageData.Count; i++)
+ {
+ var apkInfo = responeData.pageData[i];
+ var version = int.Parse(apkInfo.FirmwareVersion.Replace(".", ""));
+ if (version > NewVersion)
+ {
+ NewVersion = version;
+ MaxIndex = i;
+ }
+ }
+ return responeData.pageData[MaxIndex];
+ }
+ return null;
+ }
+ catch (Exception ex)
+ {
+ return null;
+ }
+ }
+
+ /// <summary>
+ /// 涓嬭浇瀹夎apk
+ /// </summary>
+ /// <returns>The load apk async.</returns>
+ /// <param name="requestUrl">璇锋眰閾炬帴</param>
+ /// <param name="byteData">璇锋眰鍙傛暟</param>
+ private System.Threading.Tasks.Task<byte[]> DownLoadApkAsync(string requestUrl, byte[] byteData)
+ {
+ try
+ {
+ webClient.Headers.Add(HttpRequestHeader.ContentType, "application/json");
+ webClient.Headers.Add(HttpRequestHeader.Authorization, Config.Instance.Token);
+ webClient.UploadProgressChanged += Client_DownloadProgressChanged;
+ webClient.UploadDataCompleted += Client_UploadCompleted;
+ var result = webClient.UploadDataTaskAsync($"{CommonPage.RequestHttpsHost}/{requestUrl}", "POST", byteData);
+ if (result == null)
+ {
+ return null;
+ }
+ return result;
+ }
+ catch (Exception ex)
+ {
+ return null;
+ }
+ finally
+ {
+ }
+ }
+ /// <summary>
+ /// apk涓嬭浇杩涘害
+ /// </summary>
+ /// <param name="sender">Sender.</param>
+ /// <param name="e">E.</param>
+ void Client_DownloadProgressChanged(object sender, UploadProgressChangedEventArgs e)
+ {
+ //System.Console.WriteLine($"褰撳墠杩涘害--{(int)(e.BytesReceived / (float)ApkBytesTotalLength * 100)} % --BytesReceived--{e.BytesReceived}--totalByte{e.TotalBytesToReceive}");
+ if (e.BytesReceived <= ApkBytesTotalLength)
+ {
+ Application.RunOnMainThread(() =>
+ {
+ SetDownLoadBtnVisible();
+ btnUpdating.Text = $"{ Language.StringByID(R.MyInternationalizationString.Updating)} {(int)(e.BytesReceived / (float)ApkBytesTotalLength * 100)}%";
+ });
+ }
+ }
+
+ /// <summary>
+ /// Client_UploadCompleted
+ /// </summary>
+ /// <param name="sender"></param>
+ /// <param name="e"></param>
+ void Client_UploadCompleted(object sender, UploadDataCompletedEventArgs e)
+ {
+ System.Console.WriteLine("涓嬭浇apk瀹屾垚");
+ SetDownLoadBtnNoVisible();
+ }
+ /// <summary>
+ /// 鍙栨秷涓嬭浇apk
+ /// </summary>
+ private void CancelDownLoadApkAsync()
+ {
+ webClient?.CancelAsync();
+ SetDownLoadBtnNoVisible();
+ System.Console.WriteLine("鍙栨秷涓嬭浇apk");
+ }
#endif
+
}
}
--
Gitblit v1.8.0