From 0e1c6c25b1b0961d324811ff2132717a80f99efe Mon Sep 17 00:00:00 2001 From: JLChen <551775569@qq.com> Date: 星期日, 26 四月 2020 14:15:05 +0800 Subject: [PATCH] 2020-04-26 1.添加住宅和修改住宅时,改为子线程操作。 2.远程连接模式时,禁用搜索网关和添加设备。3.修复切换住宅时,提示远程连接Loading不关闭问题。 --- Crabtree/SmartHome/UI/SimpleControl/MainPage.cs | 224 +++++++++++++++++++++++++++++++++---------------------- 1 files changed, 133 insertions(+), 91 deletions(-) diff --git a/Crabtree/SmartHome/UI/SimpleControl/MainPage.cs b/Crabtree/SmartHome/UI/SimpleControl/MainPage.cs index ad140ac..1f245cc 100644 --- a/Crabtree/SmartHome/UI/SimpleControl/MainPage.cs +++ b/Crabtree/SmartHome/UI/SimpleControl/MainPage.cs @@ -1,16 +1,14 @@ using System; -using Shared.IO; -using Shared.Net; using System.Text; using System.Collections.Generic; +using System.Net; +using System.IO; +using Shared.SimpleControl.Phone; // <summary> // 绋嬪簭涓诲叆鍙� // </summary> //using SystemConfiguration; -using System.Net; -using System.IO; -using Shared.SimpleControl.Phone; namespace Shared.SimpleControl { /// <summary> @@ -38,19 +36,50 @@ } //public static Button LogoButton = new Button (); + - public static string CodeIDString = "20191223"; + public static string RequestVersion = "20200426"; public static UserInfo LoginUser; + /// <summary> + /// 鏄惁鏄鐞嗗憳鏉冮檺(鍙樻洿浜�,鎴愬憳鐨勬椂鍊�,杩欎釜涔熶负ture銆備负浠�涔堜細澹版槑杩欐牱鍙橀噺,鍥犱负鏈変簺鎺ュ彛蹇呴』浣跨敤鍘熸潵鐨凾oken) + /// </summary> + public static bool IsAdministrator { + get { + if (UserConfig.Instance == null || UserConfig.Instance.CurrentRegion == null) { + return false; + } else { + return UserConfig.Instance.CurrentRegion.IsOthreShare; + } + } + } + ///// <summary> + ///// 鏄惁璐﹀彿鍦ㄥ叾瀹冭澶囩櫥褰曚簡 + ///// </summary> + //public static bool IsOtherDevicesLogin = false; + +//#if __IOS__ +// public static readonly string PhoneType = "iOS"; +//#else +// public static readonly string PhoneType = "Android"; +//#endif public static string SoftPadTitle = "Crabtree"; public static string SoftTitle = "Crabtree"; public static int SoftSmsType = 0; + public static string RequestSource = "1"; //0:Zigbee銆�1:HdlOn銆�2:GraphicsMonitor銆�3:BusproSoft銆�4:AgentWeb + public static string LogoString = "";//"Logo/Logo.png"; public static string WiFiStatus = "CrabtreeAdd/WiFi.png";//"CrabtreeAdd/WiFi.png"; public static string RegisterLogoString = "Logo/Register_logo.png"; public static string SeviceIP = "52.172.25.151"; - public static string RequestHttpsHost = "https://homeautomation.havells.com"; + public static string RequestHttpsHost = "https://smarth-api.havells.com/HangZhouHdlCloudApi"; + //public static string RequestHttpsHost = "https://global.hdlcontrol.com/HangZhouHdlCloudApi"; + + public static string RequestHttpsHostMqtt = "https://smarth-api.havells.com"; + + //public static string RequestHttpsHost = "https://developer.hdlcontrol.com"; + public static double PixelScale { get { @@ -109,10 +138,13 @@ } else { Phone.UserHomePage.Init (); #if __IOS__ - //Loading.LodingBackgroundColor = 0x10777777; + //Loading.LodingBackgroundColor = 0x10777777; + #else - Loading.LodingBackgroundColor = SkinStyle.Current.MainColor; + //Loading.LodingBackgroundColor = SkinStyle.Current.MainColor; #endif + Loading.TextColor = 0xFFA9A9A9; + Loading.LodingBackgroundColor = SkinStyle.Current.MainColor; } } catch (Exception ex) { //new Alert ("Eorr", ex.Message, "Close").Show(); @@ -135,11 +167,13 @@ Gravity = Gravity.Center, Width = Application.GetRealWidth (560), Height = Application.GetRealHeight (126), - BackgroundColor = SkinStyle.Current.AddTipButtonColor, + //BackgroundColor = SkinStyle.Current.AddTipButtonColor, + BackgroundColor = SkinStyle.Current.MainColor, Radius = 10, IsMoreLines = true, Text = tip, TextSize = 16, + TextColor = 0xFF000000 }; MainFrameLayout.AddChidren (button); button.MouseUpEventHandler += (sender, e) => { @@ -163,40 +197,71 @@ /// <param name="methodType">璇锋眰鏂规硶.</param> /// <param name="dataStringJson">璇锋眰鐨勫弬鏁�.</param> /// <param name="needHeaders">鏄惁闇�瑕佸寘澶�.</param> - public static ResponsePack RequestHttps (string methodType, string dataStringJson, bool needHeaders = true, bool needTip = true,string urlHead = "") + public static ResponsePack RequestHttps (string methodType, string dataStringJson, string urlHead = "") + { + ServicePointManager.ServerCertificateValidationCallback += (sender, cert, chain, error) => { + return true; + }; + + #region + var webClient = new WebClient (); + if (urlHead == "") { + urlHead = RequestHttpsHost; + } + //else { + // webClient.Headers.Add ("CONTENT-TYPE", "application/json"); + //} + webClient.Headers.Add ("CONTENT-TYPE", "application/json"); + string url = urlHead + methodType; + if (LoginUser != null) {/* 濡傛灉涓嶉渶瑕侀獙璇乀oken鍙互涓嶇敤浼犲叆 */ + webClient.Headers.Add ("Authorization", LoginUser.LoginTokenString); + } + byte [] bytes = null; + try { + bytes = webClient.UploadData (url, Encoding.UTF8.GetBytes (dataStringJson)); + } catch (System.Net.WebException webEx) { + //Application.RunOnMainThread (() => { + // MainPage.Loading.Hide (); + //}); + return new ResponsePack () { StateCode = ErrorCode.NetworkError }; + } + string responseString = Encoding.UTF8.GetString (bytes); + + try { + return Newtonsoft.Json.JsonConvert.DeserializeObject<ResponsePack> (responseString); + } catch (Exception ex) { + Utlis.WriteLine (ex.ToString ()); + return new ResponsePack () { StateCode = "Data exception" }; + } + #endregion + + } + + /// <summary> + /// 璇锋眰鏈嶅姟鍣ㄦ柟娉� + /// </summary> + /// <returns>The https.</returns> + /// <param name="methodType">璇锋眰鏂规硶.</param> + /// <param name="dataStringJson">璇锋眰鐨勫弬鏁�.</param> + /// <param name="needHeaders">鏄惁闇�瑕佸寘澶�.</param> + public static byte [] RequestHttpsReturnByte (string methodType, string dataStringJson, bool needHeaders = false, string urlHead = "") { ResponsePack revertObj = null; try { - if (!SystemRemote.checeInternet ()) { - Application.RunOnMainThread (() => { - MainPage.WiFiStatus = "CrabtreeAdd/WiFiUnlink.png"; - MainPage.Loading.Hide (); - }); - } - //new System.Threading.Thread (() => { - // requesTime = DateTime.Now; - // isShowLoading = true; - // while (isShowLoading) { - // System.Threading.Thread.Sleep (1000); - // if (requesTime == DateTime.MinValue) { - // break; - // } - // if (requesTime.AddSeconds (30) < DateTime.Now) { - // Application.RunOnMainThread (Loading.Hide); - // isShowLoading = false; - // } - // } - //}) { IsBackground = true }.Start (); + ServicePointManager.ServerCertificateValidationCallback += (sender, cert, chain, error) => { + return true; + }; #region var webClient = new WebClient (); if (urlHead == "") { - urlHead = $"{"https://homeautomation.havells.com"}/WebApi/"; - urlHead = "https://developer.hdlcontrol.com/api/"; - } else { - webClient.Headers.Add ("CONTENT-TYPE", "application/json"); + urlHead = RequestHttpsHost; } + //else { + // webClient.Headers.Add ("CONTENT-TYPE", "application/json"); + //} + webClient.Headers.Add ("CONTENT-TYPE", "application/json"); string url = urlHead + methodType; if (needHeaders && LoginUser != null) {/* 濡傛灉涓嶉渶瑕侀獙璇乀oken鍙互涓嶇敤浼犲叆 */ webClient.Headers.Add ("Authorization", LoginUser.LoginTokenString); @@ -205,76 +270,44 @@ try { bytes = webClient.UploadData (url, Encoding.UTF8.GetBytes (dataStringJson)); } catch (System.Net.WebException webEx) { - Application.RunOnMainThread (() => { - MainPage.Loading.Hide (); - revertObj = new ResponsePack () { StateCode = "Network_Error" }; - //new Alert ( "","Network abnormal, unable to connect to the Internet", Language.StringByID (R.MyInternationalizationString.Close)).Show (); - return; - }); + return bytes; } - string responseString = null; - if (bytes != null) { - responseString = Encoding.UTF8.GetString (bytes); - } - - //var request = (HttpWebRequest)WebRequest.Create (url); - //var data = Encoding.UTF8.GetBytes (dataStringJson); - //request.Method = "POST"; - //request.ContentLength = data.Length; - //if (needHeaders) {/* 濡傛灉涓嶉渶瑕侀獙璇乀oken鍙互涓嶇敤浼犲叆 */ - // request.Headers.Set (HttpRequestHeader.Authorization, LoginUser.LoginTokenString); - //} - //using (var stream = request.GetRequestStream ()) { - // stream.Write (data, 0, data.Length); - //} - //var response = (HttpWebResponse)request.GetResponse (); - //var responseString = new StreamReader (response.GetResponseStream ()).ReadToEnd (); - - if (responseString != null) { - try { - revertObj = Newtonsoft.Json.JsonConvert.DeserializeObject<ResponsePack> (responseString); - if (revertObj.StateCode != "SUCCESS") { - if (methodType == "IsExistingAccount") { - - } else if (needTip) { - Application.RunOnMainThread (() => { - new Alert ("", revertObj.ErrorInfo, Language.StringByID (R.MyInternationalizationString.Close)).Show (); - }); - } - } - } catch (Exception ex) { - Console.WriteLine (ex.ToString ()); - } - } else { - if (methodType == "Login" && needTip) { - Application.RunOnMainThread (() => { - new Alert ("", Language.StringByID (R.MyInternationalizationString.FailureToDataBase), - Language.StringByID (R.MyInternationalizationString.Close)).Show (); - }); - } else { - if (needTip) - FailureToServer (); - } - } - return revertObj; + + + return bytes; #endregion } catch (Exception ex) { - Console.WriteLine (ex.Message); - return revertObj; + Utlis.WriteLine (ex.Message); + return null; } finally { //requesTime = requesTime.AddDays(1); } } + + /// <summary> /// 杩炴帴鏈嶅姟鍣ㄥけ璐� /// </summary> public static void FailureToServer () { + //Application.RunOnMainThread (() => { + // new Alert ("", Language.StringByID (R.MyInternationalizationString.FailureToServer), + // Language.StringByID (R.MyInternationalizationString.Close)).Show (); + //}); + ShowAlertOnMainThread (Language.StringByID (R.MyInternationalizationString.FailureToServer)); + } + + /// <summary> + /// 2020-01-11 寮圭獥鎻愮ず + /// </summary> + /// <param name="mes"></param> + public static void ShowAlertOnMainThread (string mes) + { Application.RunOnMainThread (() => { - new Alert ("", Language.StringByID (R.MyInternationalizationString.FailureToServer), - Language.StringByID (R.MyInternationalizationString.Close)).Show (); + new Alert ("", mes, Language.StringByID (R.MyInternationalizationString.Close)).Show (); }); } + /// <summary> /// 璁惧涓嶅湪绾匡紝鏃犲搷搴� @@ -294,11 +327,20 @@ }); } + public static void LoadingSetText (string showString = "") + { + Application.RunOnMainThread (() => { + MainPage.Loading.Text = showString; + }); + } + public static void LoadingHide () { Application.RunOnMainThread (() => { MainPage.Loading.Hide (); }); } + + } -} \ No newline at end of file +} -- Gitblit v1.8.0