| | |
| | | /// 更新中
|
| | | /// </summary>
|
| | | public Button updatingBtn;
|
| | | /// <summary> |
| | | /// distributedMark |
| | | /// <summary>
|
| | | /// distributedMark
|
| | | /// </summary>
|
| | | public string distributedMark; |
| | | /// <summary> |
| | | /// updateRow |
| | | /// </summary> |
| | | public DeviceInfoRow updateRow; |
| | | /// <summary> |
| | | /// 下载安卓apk的byte长度 |
| | | /// </summary> |
| | | public string distributedMark;
|
| | | /// <summary>
|
| | | /// updateRow
|
| | | /// </summary>
|
| | | public DeviceInfoRow updateRow;
|
| | | /// <summary>
|
| | | /// 下载安卓apk的byte长度
|
| | | /// </summary>
|
| | | public long ApkBytesTotalLength = 0;
|
| | |
|
| | | #endregion
|
| | |
| | | /// </summary>
|
| | | public AbountForm()
|
| | | {
|
| | | |
| | |
|
| | | }
|
| | | /// <summary>
|
| | | /// 画面显示(底层会固定调用此方法,借以完成画面创建)
|
| | |
| | | private void InitMiddleFrame()
|
| | | {
|
| | | bodyFrameLayout.BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor;
|
| | | var logoFrameLayout = new FrameLayout |
| | | { |
| | | Height = Application.GetRealHeight(484), |
| | | BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor |
| | | var logoFrameLayout = new FrameLayout
|
| | | {
|
| | | Height = Application.GetRealHeight(484),
|
| | | BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
|
| | | };
|
| | | bodyFrameLayout.AddChidren(logoFrameLayout);
|
| | |
|
| | | var logoBackground = new FrameLayout |
| | | { |
| | | Y = Application.GetRealHeight(104), |
| | | var logoBackground = new FrameLayout
|
| | | {
|
| | | Y = Application.GetRealHeight(104),
|
| | | Width = Application.GetMinRealAverage(167),
|
| | | Height = Application.GetMinRealAverage(167), |
| | | Gravity = Gravity.CenterHorizontal, |
| | | BackgroundColor = ZigbeeColor.Current.GXCButtonBlackSelectedColor, |
| | | Radius = (uint)Application.GetRealHeight(37), |
| | | Height = Application.GetMinRealAverage(167),
|
| | | Gravity = Gravity.CenterHorizontal,
|
| | | BackgroundColor = ZigbeeColor.Current.GXCButtonBlackSelectedColor,
|
| | | Radius = (uint)Application.GetRealHeight(37),
|
| | | };
|
| | | logoFrameLayout.AddChidren(logoBackground);
|
| | |
|
| | |
| | | logoFrameLayout.AddChidren(versionBtn);
|
| | |
|
| | |
|
| | | var versionFL = new FrameLayout |
| | | { |
| | | Y = Application.GetRealHeight(510), |
| | | Height = Application.GetRealHeight(300), |
| | | BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor |
| | | var versionFL = new FrameLayout
|
| | | {
|
| | | Y = Application.GetRealHeight(510),
|
| | | Height = Application.GetRealHeight(300),
|
| | | BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
|
| | | };
|
| | | bodyFrameLayout.AddChidren(versionFL); |
| | | |
| | | var SLARow = new DeviceInfoRow(12); |
| | | SLARow.Init(); |
| | | SLARow.SetTipTitle(R.MyInternationalizationString.SLA); |
| | | SLARow.NameText.TextAlignment = TextAlignment.CenterRight; |
| | | versionFL.AddChidren(SLARow); |
| | | SLARow.ClickBtn.MouseUpEventHandler += (sender, e) => |
| | | { |
| | | var slaForm = new SLAForm(); |
| | | slaForm.AddForm(); |
| | | bodyFrameLayout.AddChidren(versionFL);
|
| | |
|
| | | var SLARow = new DeviceInfoRow(12);
|
| | | SLARow.Init();
|
| | | SLARow.SetTipTitle(R.MyInternationalizationString.SLA);
|
| | | SLARow.NameText.TextAlignment = TextAlignment.CenterRight;
|
| | | versionFL.AddChidren(SLARow);
|
| | | SLARow.ClickBtn.MouseUpEventHandler += (sender, e) =>
|
| | | {
|
| | | var slaForm = new SLAForm();
|
| | | slaForm.AddForm();
|
| | | };
|
| | |
|
| | | updateRow = new DeviceInfoRow(12 + 127 + 12); |
| | | updateRow.Init(); |
| | | updateRow.SetTipTitle(R.MyInternationalizationString.UpdateVersion); |
| | | updateRow.NameText.TextAlignment = TextAlignment.CenterRight; |
| | | updateRow.HideLine(true); |
| | | updateRow.SetTitle(R.MyInternationalizationString.TheAppVersionIsNewest); |
| | | updateRow.CanClick(false); |
| | | updateRow.SetTitleColor(ZigbeeColor.Current.GXCTextGrayColor); |
| | | versionFL.AddChidren(updateRow); |
| | | updateRow.ClickBtn.MouseUpEventHandler += (sender, e) => |
| | | { |
| | | UpdateVersion(); |
| | | }; |
| | | updateRow = new DeviceInfoRow(12 + 127 + 12);
|
| | | updateRow.Init();
|
| | | updateRow.SetTipTitle(R.MyInternationalizationString.UpdateVersion);
|
| | | updateRow.NameText.TextAlignment = TextAlignment.CenterRight;
|
| | | updateRow.HideLine(true);
|
| | | updateRow.SetTitle(R.MyInternationalizationString.TheAppVersionIsNewest);
|
| | | updateRow.CanClick(false);
|
| | | updateRow.SetTitleColor(ZigbeeColor.Current.GXCTextGrayColor);
|
| | | versionFL.AddChidren(updateRow);
|
| | | updateRow.ClickBtn.MouseUpEventHandler += (sender, e) =>
|
| | | {
|
| | | UpdateVersion();
|
| | | };
|
| | |
|
| | | |
| | |
|
| | | updatingBtn = new Button()
|
| | | {
|
| | | Y = Application.GetRealHeight(994),
|
| | |
| | | Gravity=Gravity.CenterHorizontal
|
| | | };
|
| | | bodyFrameLayout.AddChidren(updatingBtn);
|
| | | |
| | |
|
| | | SetDownLoadBtnNoVisible();
|
| | | CheckVersion();
|
| | | }
|
| | |
|
| | | /// <summary> |
| | | /// CheckVersion |
| | | /// <summary>
|
| | | /// CheckVersion
|
| | | /// </summary>
|
| | | private void CheckVersion() |
| | | { |
| | | new System.Threading.Thread(async () => |
| | | { |
| | | var re = await CanUpdateAsync(); |
| | | if (re) |
| | | { |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | updateRow.CanClick(true); |
| | | updateRow.SetTitleColor(ZigbeeColor.Current.GXCButtonSelectedColor); |
| | | updateRow.SetTitle(R.MyInternationalizationString.Update); |
| | | }); |
| | | } |
| | | }) |
| | | private void CheckVersion()
|
| | | {
|
| | | new System.Threading.Thread(async () =>
|
| | | {
|
| | | var re = await CanUpdateAsync();
|
| | | if (re)
|
| | | {
|
| | | Application.RunOnMainThread(() =>
|
| | | {
|
| | | updateRow.CanClick(true);
|
| | | updateRow.SetTitleColor(ZigbeeColor.Current.GXCButtonSelectedColor);
|
| | | updateRow.SetTitle(R.MyInternationalizationString.Update);
|
| | | });
|
| | | }
|
| | | })
|
| | | { IsBackground = true }.Start();
|
| | | |
| | |
|
| | | }
|
| | | /// <summary>
|
| | | /// 设置进度控件不可见
|
| | |
| | | updateRow.CanClick(false);
|
| | | }
|
| | |
|
| | | /// <summary> |
| | | /// 检查版本 |
| | | /// </summary> |
| | | /// <summary>
|
| | | /// 检查版本
|
| | | /// </summary>
|
| | | /// <returns></returns>
|
| | | private async System.Threading.Tasks.Task<bool> CanUpdateAsync() |
| | | { |
| | | private async System.Threading.Tasks.Task<bool> CanUpdateAsync()
|
| | | {
|
| | | #if iOS
|
| | | try
|
| | | {
|
| | |
| | | return false;
|
| | |
|
| | | }
|
| | | |
| | |
|
| | | #elif Android
|
| | | try
|
| | | {
|
| | |
| | | {
|
| | | return false;
|
| | | }
|
| | | #endif
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | | /// 更新
|
| | | /// </summary>
|
| | | private async void UpdateVersion()
|
| | | {
|
| | | #if iOS
|
| | | CommonPage.Instance.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 |
| | | }
|
| | |
|
| | | /// <summary> |
| | | /// 更新 |
| | | #if iOS
|
| | | /// <summary>
|
| | | /// 获取iOS-APP版本信息
|
| | | /// </summary>
|
| | | private async void UpdateVersion() |
| | | { |
| | | #if iOS |
| | | CommonPage.Instance.OpenUrl(); |
| | | /// <returns>The https app version async.</returns>
|
| | | public async System.Threading.Tasks.Task<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<ResponseEntity.ResultPack>(Encoding.UTF8.GetString(result));
|
| | | }
|
| | | catch
|
| | | {
|
| | | return null;
|
| | | }
|
| | | }
|
| | | /// <summary>
|
| | | /// 跳转到APP 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
|
| | | 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<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<ResponseEntity.ResultPack>(Encoding.UTF8.GetString(result)); |
| | | } |
| | | catch |
| | | { |
| | | return null; |
| | | } |
| | | } |
| | | /// <summary> |
| | | /// 跳转到APP 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>
|
| | |
| | | intent.SetDataAndType(Android.Net.Uri.FromFile(file), "application/vnd.android.package-archive");
|
| | | }
|
| | | 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(); |
| | | updatingBtn.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"); |
| | | } |
| | | }
|
| | |
|
| | | /// <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();
|
| | | updatingBtn.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
|
| | |
|
| | | }
|