From 652243206427f35a256400a149a1734085824cb9 Mon Sep 17 00:00:00 2001 From: 陈嘉乐 <cjl@hdlchina.com.cn> Date: 星期三, 02 九月 2020 17:35:03 +0800 Subject: [PATCH] 2020-09-02-4 --- ZigbeeApp/Shared/Common/CommonPage.cs | 354 ++++++++++++----------------------------------------------- 1 files changed, 72 insertions(+), 282 deletions(-) diff --git a/ZigbeeApp/Shared/Common/CommonPage.cs b/ZigbeeApp/Shared/Common/CommonPage.cs index 2ef9c2b..d72d0b2 100755 --- a/ZigbeeApp/Shared/Common/CommonPage.cs +++ b/ZigbeeApp/Shared/Common/CommonPage.cs @@ -4,10 +4,10 @@ using System.Linq; using System.Net; using System.Text; -using Shared.Phone.UserCenter.Abount; + namespace Shared.Common { - public class CommonPage : FrameLayout + public class CommonPage : UIDrawerLayout { static CommonPage commonPage; public static CommonPage Instance @@ -28,36 +28,21 @@ public static Loading Loading = new Loading(); public void Show() { - //if (Application.IsPad) - //{ - // Application.DesignWidth = 2048; - // Application.DesignHeight = 1536; - // Pad.MainPage.Instance .Show(); - // } - //else - //{ Application.DesignWidth = 1080; Application.DesignHeight = 1920; Application.MainPage.AddChidren(this); AddChidren(Phone.UserView.HomePage.Instance); Application.MainPage.AddChidren(Loading); - //} + Phone.UserView.HomePage.Instance.InitPage(); } - public static string SoftTitle = "ZigBee"; - /// <summary> - /// 鐭俊妯℃澘缂栧彿 - /// </summary> - public static int SoftSmsType = 0; - public static string LogoString = @"Logo/Logo.png"; - public static string RegisterLogoString = @"Logo/Register_logo.png"; - public static string RequestHttpsHost = "https://global.hdlcontrol.com/HangZhouHdlCloudApi"; - //public static string RequestHttpsHost = "http://172.16.2.192:13061"; + //public static string RequestHttpsHost = "https://global.hdlcontrol.com/HangZhouHdlCloudApi"; + public static string RequestHttpsHost = "https://global.hdlcontrol.com/ProposedProductionApi"; /// <summary> /// 鐗堟湰鍙� /// </summary> - public static string CodeIDString = "1.0.19112201"; + public static string CodeIDString = "1.1.0120082701"; /// <summary> /// 娉ㄥ唽鏉ユ簮(0:HDL On 1:Zigbee) /// </summary> @@ -80,10 +65,6 @@ /// </summary> public static int XLeft = 58; /// <summary> - /// button楂樺害--110 - /// </summary> - public static int ButtonHeight = 110; - /// <summary> /// 浣跨敤鐨勮瑷� /// </summary> public static string ZigBeeLanguage @@ -94,68 +75,18 @@ } } /// <summary> - /// 澶ф帶浠跺渾瑙� --- 10銆備笉鏄笉鍗婂渾閭g銆� - /// </summary> - public static uint BigFormRadius = 10; - /// <summary> /// 榛樿鎵嬫満鍖哄彿涓�86涓浗澶ч檰 /// </summary> public static string PhoneZoneStr = "86"; /// <summary> - /// 鎵嬫満鍖哄悕绉� - /// </summary> - public static string ZoneNameStr = "涓浗澶ч檰"; - /// <summary> - /// 璺濈椤剁楂樺害--80 鐘舵�佹爮楂樺害 - /// </summary> - public static int NavigationTitle_Y = 80; - /// <summary> - /// 琛岄珮--180 - /// </summary> - public static int RowHeight = 180; - /// <summary> /// APP瀹藉害 -- 1080 /// </summary> public static int AppRealWidth = 1080; - /// <summary> - /// APP楂樺害 -- 1920 - /// </summary> - public static int AppRealHeight = 1920; - /// <summary> - /// 杩斿洖閿窛绂诲乏杈圭殑璺濈 30 - /// </summary> - public static int Navigation_X = 30; - /// <summary> - /// 瀵艰埅鏍忛珮搴�-220 - /// </summary> - public static int Navigation_Height = 220; - /// <summary> - /// 搴曡竟鏍忛珮搴� - /// </summary> - public const int TabbarHeight = 141; - /// <summary> - /// 绾挎潯鐨勯珮搴�--瀹為檯鍍忕礌3 - /// </summary> - public static int LineHeight = 3; - /// <summary> - /// 鏁翠釜鍦烘櫙寤舵椂鏃堕棿--60绉� - /// </summary> - public static int SceneDelayTime = 60; - - /// <summary> - /// 闂撮殧澶氶暱鏃堕棿璇诲彇璁惧鐘舵�� 鍗曚綅 绉� --榛樿30 - /// </summary> - public static int ReadDeviceStatuSpan = 30; - /// <summary> - /// 璇诲彇澶氬皯椤�--999 - /// </summary> - public static int PageSize = 999; /// <summary> /// 鐢ㄤ簬涓浗澶ч檰楠岃瘉鎵嬫満鍙锋鍒欒〃杈惧紡 - /// 绛夊悓浜�--- "^[1]+\\d{10}" /// </summary> - public static string PhoneRegexStr = "^[1]+[0,1,2,3,4,5,6,7,8,9]+\\d{9}"; + public static string PhoneRegexStr = "^[1][0-9]{10}$"; /// <summary> /// 鐢ㄤ簬楠岃瘉闈炰腑鍥藉ぇ闄嗘墜鏈哄彿姝e垯琛ㄨ揪寮� /// </summary> @@ -164,24 +95,6 @@ /// 鐢ㄤ簬楠岃瘉閭姝e垯琛ㄨ揪寮� /// </summary> public static string EmailRegexStr = "^\\s*([A-Za-z0-9_-]+(\\.\\w+)*@(\\w+\\.)+\\w{2,5})\\s*$"; - /// <summary> - /// 涓嬭浇瀹夊崜apk鐨刡yte闀垮害 - /// </summary> - public static long ApkBytesTotalLength = 0; - - //public static Encoding EncodingUTF8 = Encoding.UTF8; - //public static Encoding EncodingGB2312 = Encoding.GetEncoding("gb2312"); - public static bool IsRemote = false; - public static bool FindGateway = false; - /// <summary> - /// 褰撳墠缃戠粶杩炴帴鐨勬ā寮� 0:娌℃湁缃戠粶 1锛氳繙绋嬭繛鎺ワ紝涔熷彨3G,4G 2锛歐IFI - /// </summary> - public static int nowNetworkMode = 0; - /// <summary> - /// 鍗犱綅瀛椾綋澶у皬 - /// 11 - /// </summary> - public static int PlaceHolderTextSize = 11; /// <summary> /// 瀹夊崜鐨勭郴缁熻繑鍥炴寜閿兘鍚︽寜涓�(姣斿鍦ㄥ浠借繕鍘熸椂,涓嶈兘鎸変笅杩斿洖閿�) /// </summary> @@ -193,10 +106,11 @@ /// </summary> /// <param name="requestUrl">璇锋眰Url</param> /// <param name="byteData">璇锋眰鐨勭殑鏁版嵁</param> + /// <param name="timeout">瓒呮椂,榛樿10绉�</param> /// <returns>寰楀埌鍝嶅簲鐨勬暟鎹�</returns> - public async System.Threading.Tasks.Task<Shared.Common.ResponseEntity.ResponsePack> RequestHttpsZigbeeAsync(string requestUrl, byte[] byteData) + public ResponseEntity.ResponsePack RequestHttpsZigbeeAsync(string requestUrl, byte[] byteData, int timeout = 10) { - string result = await this.RequestHttpsZigbeeResultAsync(requestUrl, byteData); + string result = this.RequestHttpsZigbeeResultAsync(requestUrl, byteData, timeout); if (result != null) { try @@ -218,10 +132,11 @@ /// </summary> /// <param name="requestUrl">璇锋眰Url</param> /// <param name="byteData">璇锋眰鐨勭殑鏁版嵁</param> + /// <param name="timeout">瓒呮椂,榛樿10绉�</param> /// <returns>寰楀埌鍝嶅簲鐨勬暟鎹�</returns> - public async System.Threading.Tasks.Task<string> RequestHttpsZigbeeResultAsync(string requestUrl, byte[] byteData) + public string RequestHttpsZigbeeResultAsync(string requestUrl, byte[] byteData, int timeout = 10) { - var result = await RequestHttpsZigbeeBytesResultAsync(requestUrl, byteData); + var result = RequestHttpsZigbeeBytesResultAsync(requestUrl, byteData, "POST", timeout); if (result != null) { return Encoding.UTF8.GetString(result); @@ -236,12 +151,13 @@ /// <param name="requestUrl">璇锋眰Url</param> /// <param name="byteData">璇锋眰鐨勭殑鏁版嵁</param> /// <param name="requestMethod">POST 鎴栬�� GET 绛夌瓑</param> + /// <param name="timeout">瓒呮椂,榛樿10绉�</param> /// <returns>寰楀埌鍝嶅簲鐨勬暟鎹�</returns> - public async System.Threading.Tasks.Task<byte[]> RequestHttpsZigbeeBytesResultAsync(string requestUrl, byte[] byteData, string requestMethod = "POST") + public byte[] RequestHttpsZigbeeBytesResultAsync(string requestUrl, byte[] byteData, string requestMethod = "POST", int timeout = 10) { //璇锋眰Url鐨勫畬鎴愯矾寰� var fullUrl = $"{RequestHttpsHost}/{requestUrl}"; - return await this.DoRequestZigbeeHttpsInterface(fullUrl, byteData, Config.Instance.Token, requestMethod); + return this.DoRequestZigbeeHttpsInterface(fullUrl, byteData, Config.Instance.Token, requestMethod, timeout); } /// <summary> @@ -251,13 +167,14 @@ /// <param name="requestUrl">璇锋眰Url</param> /// <param name="byteData">璇锋眰鐨勭殑鏁版嵁</param> /// <param name="requestMethod">POST 鎴栬�� GET 绛夌瓑</param> + /// <param name="timeout">瓒呮椂,榛樿10绉�</param> /// <returns>寰楀埌鍝嶅簲鐨勬暟鎹�</returns> - public async System.Threading.Tasks.Task<byte[]> RequestZigbeeHttpsByAdmin(string requestUrl, byte[] byteData, string requestMethod = "POST") + public byte[] RequestZigbeeHttpsByAdmin(string requestUrl, byte[] byteData, string requestMethod = "POST", int timeout = 10) { //璇锋眰Url鐨勫畬鎴愯矾寰� var fullUrl = $"{Config.Instance.AdminRequestBaseUrl}/{requestUrl}"; - return await this.DoRequestZigbeeHttpsInterface(fullUrl, byteData, Config.Instance.AdminRequestToken, requestMethod); - } + return this.DoRequestZigbeeHttpsInterface(fullUrl, byteData, Config.Instance.AdminRequestToken, requestMethod, timeout); + } /// <summary> /// 璇锋眰鏈嶅姟鍣ㄦ柟娉� @@ -267,8 +184,9 @@ /// <param name="byteData">璇锋眰鐨勭殑鏁版嵁</param> /// <param name="token">token</param> /// <param name="requestMethod">POST 鎴栬�� GET 绛夌瓑</param> + /// <param name="timeout">瓒呮椂,榛樿10绉�</param> /// <returns>寰楀埌鍝嶅簲鐨勬暟鎹�</returns> - public async System.Threading.Tasks.Task<byte[]> DoRequestZigbeeHttpsInterface(string requestFullUrl, byte[] byteData, string token, string requestMethod = "POST") + public byte[] DoRequestZigbeeHttpsInterface(string requestFullUrl, byte[] byteData, string token, string requestMethod = "POST", int timeout = 10) { try { @@ -278,7 +196,9 @@ //2锛� 鍒濆鍖朒ttpWebRequest瀵硅薄 webRequest.Method = requestMethod; - webRequest.Timeout = 10 * 1000; + webRequest.Timeout = timeout * 1000; + //鍙栨秷浣跨敤浠g悊璁块棶 + webRequest.Proxy = null; if (token != null) { //瀵瑰簲寰俊缃戝潃 @@ -320,162 +240,22 @@ return ms.ToArray(); } } - catch (Exception e) + catch (WebException e) { -#if DEBUG - System.Console.WriteLine(e.Message); -#endif - //Log鍑哄姏 - Phone.UserCenter.HdlLogLogic.Current.WriteLog(e); - return null; + if (e.Status == WebExceptionStatus.ConnectFailure//鐢辨湁缃戠粶鍒囨崲鍒版棤缃戠粶鏃惰Е鍙� + || e.Status == WebExceptionStatus.Timeout//瓒呮椂 + || e.Status == WebExceptionStatus.NameResolutionFailure)//鏈韩灏辨槸鏃犵綉缁滄椂鍚姩鏃惰Е鍙� + { + Phone.UserCenter.HdlWifiLogic.Current.CanAccessHttp = false; + } + return null; } - } -#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> - /// 璺宠浆鍒癆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> - /// 鑾峰彇 Android-APP 鐗堟湰淇℃伅 - /// </summary> - /// <returns>The https app version async.</returns> - public async System.Threading.Tasks.Task<ResponseEntity.ApkInfoOBJ> RequestHttpsAndroidAppVersionAsync() - { - try - { - var requestOBJ = new SendDataToServer.GetAndroidApkInfoOBJ - { - Name = "ZigbeeApp", - RequestVersion = CodeIDString - }; - var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject(requestOBJ); - var result = await 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<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) + catch (Exception e) { return null; } } - /// <summary> - /// 涓嬭浇瀹夎apk - /// </summary> - /// <returns>The load apk async.</returns> - /// <param name="requestUrl">璇锋眰閾炬帴</param> - /// <param name="byteData">璇锋眰鍙傛暟</param> - public System.Threading.Tasks.Task<byte[]> DownLoadApkAsync(string requestUrl, byte[] byteData) - { - try - { - AbountForm.instance.webClient.Headers.Add(HttpRequestHeader.ContentType, "application/json"); - AbountForm.instance.webClient.Headers.Add(HttpRequestHeader.Authorization, Config.Instance.Token); - AbountForm.instance.webClient.UploadProgressChanged += Client_DownloadProgressChanged; - AbountForm.instance.webClient.UploadDataCompleted += Client_UploadCompleted; - var result = AbountForm.instance.webClient.UploadDataTaskAsync($"{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(() => - { - //Loading.Start($"{(int)(e.BytesReceived / (float)ApkBytesTotalLength * 100)} %"); - AbountForm.instance.seekBar.Progress = (int)(e.BytesReceived / (float)ApkBytesTotalLength * 100); - AbountForm.instance.seekBarTitle.Text = $"{(int)(e.BytesReceived / (float)ApkBytesTotalLength * 100)}%"; - }); - } - } - void Client_UploadCompleted(object sender, UploadDataCompletedEventArgs e) - { - System.Console.WriteLine("涓嬭浇apk瀹屾垚"); - //Application.RunOnMainThread(Loading.Hide); - } - /// <summary> - /// 鍙栨秷涓嬭浇apk - /// </summary> - public static void CancelDownLoadApkAsync() - { - AbountForm.instance.webClient?.CancelAsync(); - System.Console.WriteLine("鍙栨秷涓嬭浇apk"); - } - -#endif /// <summary> /// 鏈嶅姟鍣ㄨ幏鍙栨暟鎹け璐ユ彁绀� /// </summary> @@ -525,30 +305,30 @@ } } } + } + + /// <summary> + /// 鐧诲嚭 + /// </summary> + public void SingOut() + { + try + { + Application.RunOnMainThread(() => + { + //璁惧畾涓�涓椂闂� + Config.Instance.LoginDateTime = new DateTime(1970, 1, 1); + Config.Instance.Save(); + CommonPage.Instance.RemoveAll(); + CommonPage.Instance.Show(); + var login = new Phone.Login.AccountLoginForm(); + CommonPage.Instance.AddChidren(login); + login.ShowForm(); + }); + } + catch { } } - - /// <summary> - /// 鐧诲嚭 - /// </summary> - public void SingOut() - { - try - { - Application.RunOnMainThread( () => - { - //璁惧畾涓�涓椂闂� - Config.Instance.LoginDateTime = new DateTime(1970, 1, 1); - Config.Instance.Save(); - CommonPage.Instance.RemoveAll(); - CommonPage.Instance.Show(); - var login = new Phone.Device.Account.AccountLogin(); - CommonPage.Instance.AddChidren(login); - login.Show(); - }); - } - catch { } - } /// <summary> /// 閫�鍑虹櫥褰曟椂璋冪敤锛屾竻闄ゆ帹閫佹暟鎹� /// </summary> @@ -573,8 +353,12 @@ /// 鐧诲綍鎴愬姛鍚庝笂鎶ヨ澶噄d绛夌浉鍏充俊鎭粰鍚庣 /// </summary> /// <returns>杩斿洖鐘舵�佺爜</returns> - public async System.Threading.Tasks.Task<string> PushRegID() + public string PushRegID() { +#if DEBUG + //璋冭瘯涓嶉渶瑕佸彂閫佽繖涓笢瑗� + return null; +#endif try { string deviceAlias; @@ -584,8 +368,9 @@ deviceType = "iphone"; #elif Android deviceAlias = Android.OS.Build.Manufacturer; - deviceType = "android"; -#endif + deviceType = "android"; +#endif + var RegIDObj = new SendDataToServer.SignZigbeeNeedPushRegIDObj() { RegID = Shared.Common.Config.Instance.RegistrationID, @@ -593,11 +378,16 @@ DeviceType = deviceType }; var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject(RegIDObj); - var reverObj = await CommonPage.Instance.RequestHttpsZigbeeAsync("ZigbeeUsers/SignZigbeeNeedPushRegID", System.Text.Encoding.UTF8.GetBytes(requestJson)); + var reverObj = CommonPage.Instance.RequestHttpsZigbeeAsync("ZigbeeUsers/SignZigbeeNeedPushRegID", System.Text.Encoding.UTF8.GetBytes(requestJson), 4); if (reverObj == null) - { + { + //璋冭瘯:璁板綍鏋佸厜ID + Phone.UserCenter.HdlLogLogic.Current.WriteOtherText(Shared.Phone.UserCenter.DirNameResourse.JiguangFile, "send:" + RegIDObj.RegID + " fail,receive obj is null", false, true); return null; - } + } + //璋冭瘯:璁板綍鏋佸厜ID + Phone.UserCenter.HdlLogLogic.Current.WriteOtherText(Shared.Phone.UserCenter.DirNameResourse.JiguangFile, "send:" + RegIDObj.RegID + " result:" + reverObj.StateCode, false, true); + return reverObj.StateCode; } catch -- Gitblit v1.8.0