From 6fa9d69da922c8049f5acfcbb9ce9fd26811024c Mon Sep 17 00:00:00 2001
From: xm <1271024303@qq.com>
Date: 星期四, 16 四月 2020 17:10:57 +0800
Subject: [PATCH] 请合并代码
---
ZigbeeApp/Shared/Common/CommonPage.cs | 458 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 458 insertions(+), 0 deletions(-)
diff --git a/ZigbeeApp/Shared/Common/CommonPage.cs b/ZigbeeApp/Shared/Common/CommonPage.cs
new file mode 100755
index 0000000..3168270
--- /dev/null
+++ b/ZigbeeApp/Shared/Common/CommonPage.cs
@@ -0,0 +1,458 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Net;
+using System.Text;
+using Shared.Phone.UserCenter.Abount;
+namespace Shared.Common
+{
+ public class CommonPage : UIDrawerLayout
+ {
+ static CommonPage commonPage;
+ public static CommonPage Instance
+ {
+ get
+ {
+ if (commonPage == null)
+ {
+ commonPage = new CommonPage { };
+ }
+ return commonPage;
+ }
+ }
+
+ /// <summary>
+ /// 鏄剧ず鍔犺浇鐣岄潰
+ /// </summary>
+ 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 = "https://global.hdlcontrol.com/ProposedProductionApi";
+ /// <summary>
+ /// 鐗堟湰鍙�
+ /// </summary>
+ public static string CodeIDString = "1.0.20041501";
+ /// <summary>
+ /// 娉ㄥ唽鏉ユ簮(0:HDL On 1:Zigbee)
+ /// </summary>
+ public static int RegisterSoruceFromZIGBEE = 0;
+ public static string Source = "ZIGBEE";
+ /// <summary>
+ /// Company 鐢ㄦ埛鍏徃鐢ㄤ簬鍏徃App瀹氬埗鐗� 榛樿0
+ /// </summary>
+ public static int Company = 0;
+ /// <summary>
+ /// 娴峰 娉ㄥ唽鏃禔PI璋冪敤鍜屽浗鍐呭尯鍒�
+ ///</summary>
+ public static int CompanyForINTERNETION = 4;
+ /// <summary>
+ /// 璇锋眰鐗堟湰鍙�
+ /// </summary>
+ public static string RequestVersion = "2.0";
+ /// <summary>
+ /// 宸﹁竟璺濈灞忓箷鐨勫搴�--58
+ /// </summary>
+ public static int XLeft = 58;
+ /// <summary>
+ /// button楂樺害--110
+ /// </summary>
+ public static int ButtonHeight = 110;
+ /// <summary>
+ /// 浣跨敤鐨勮瑷�
+ /// </summary>
+ public static string ZigBeeLanguage
+ {
+ get
+ {
+ return Language.CurrentLanguage;
+ }
+ }
+ /// <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>
+ /// 鐢ㄤ簬涓浗澶ч檰楠岃瘉鎵嬫満鍙锋鍒欒〃杈惧紡
+ /// </summary>
+ public static string PhoneRegexStr = "^[1][0-9]{10}$";
+ /// <summary>
+ /// 鐢ㄤ簬楠岃瘉闈炰腑鍥藉ぇ闄嗘墜鏈哄彿姝e垯琛ㄨ揪寮�
+ /// </summary>
+ public static string PhoneForForeignRegexStr = "^[0-9]*$";
+ /// <summary>
+ /// 鐢ㄤ簬楠岃瘉閭姝e垯琛ㄨ揪寮�
+ /// </summary>
+ public static string EmailRegexStr = "^\\s*([A-Za-z0-9_-]+(\\.\\w+)*@(\\w+\\.)+\\w{2,5})\\s*$";
+
+
+ //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>
+ public static bool BackKeyCanClick = true;
+
+ /// <summary>
+ /// 璇锋眰鏈嶅姟鍣ㄦ柟娉�
+ /// 鎸囧畾涓�涓猆rl,鍜岃姹傛柟娉曪紝鏁版嵁锛孋ookie锛屽緱鍒板搷搴旂殑鏁版嵁
+ /// </summary>
+ /// <param name="requestUrl">璇锋眰Url</param>
+ /// <param name="byteData">璇锋眰鐨勭殑鏁版嵁</param>
+ /// <returns>寰楀埌鍝嶅簲鐨勬暟鎹�</returns>
+ public async System.Threading.Tasks.Task<Shared.Common.ResponseEntity.ResponsePack> RequestHttpsZigbeeAsync(string requestUrl, byte[] byteData)
+ {
+ string result = await this.RequestHttpsZigbeeResultAsync(requestUrl, byteData);
+ if (result != null)
+ {
+ try
+ {
+ var data = Newtonsoft.Json.JsonConvert.DeserializeObject<Shared.Common.ResponseEntity.ResponsePack>(result);
+ return data;
+ }
+ catch (Exception ex)
+ {
+ System.Console.WriteLine(ex.Message);
+ }
+ }
+ return null;
+ }
+
+ /// <summary>
+ /// 璇锋眰鏈嶅姟鍣ㄦ柟娉�
+ /// 鎸囧畾涓�涓猆rl,鍜岃姹傛柟娉曪紝鏁版嵁锛孋ookie锛屽緱鍒板搷搴旂殑鏁版嵁
+ /// </summary>
+ /// <param name="requestUrl">璇锋眰Url</param>
+ /// <param name="byteData">璇锋眰鐨勭殑鏁版嵁</param>
+ /// <returns>寰楀埌鍝嶅簲鐨勬暟鎹�</returns>
+ public async System.Threading.Tasks.Task<string> RequestHttpsZigbeeResultAsync(string requestUrl, byte[] byteData)
+ {
+ var result = await RequestHttpsZigbeeBytesResultAsync(requestUrl, byteData);
+ if (result != null)
+ {
+ return Encoding.UTF8.GetString(result);
+ }
+ return null;
+ }
+
+ /// <summary>
+ /// 璇锋眰鏈嶅姟鍣ㄦ柟娉�
+ /// 鎸囧畾涓�涓猆rl,鍜岃姹傛柟娉曪紝鏁版嵁锛孋ookie锛屽緱鍒板搷搴旂殑鏁版嵁
+ /// </summary>
+ /// <param name="requestUrl">璇锋眰Url</param>
+ /// <param name="byteData">璇锋眰鐨勭殑鏁版嵁</param>
+ /// <param name="requestMethod">POST 鎴栬�� GET 绛夌瓑</param>
+ /// <returns>寰楀埌鍝嶅簲鐨勬暟鎹�</returns>
+ public async System.Threading.Tasks.Task<byte[]> RequestHttpsZigbeeBytesResultAsync(string requestUrl, byte[] byteData, string requestMethod = "POST")
+ {
+ //璇锋眰Url鐨勫畬鎴愯矾寰�
+ var fullUrl = $"{RequestHttpsHost}/{requestUrl}";
+ return await this.DoRequestZigbeeHttpsInterface(fullUrl, byteData, Config.Instance.Token, requestMethod);
+ }
+
+ /// <summary>
+ /// <pra>璇锋眰鏈嶅姟鍣ㄦ柟娉�,鎸囧畾涓�涓猆rl,鍜岃姹傛柟娉曪紝鏁版嵁锛孋ookie锛屽緱鍒板搷搴旂殑鏁版嵁</pra>
+ /// <pra>娉ㄦ剰!!姝ゆ柟娉曚粎闄愩�愭嫢鏈夌鐞嗗憳鏉冮檺鐨勬垚鍛樸�戣皟鐢�</pra>
+ /// </summary>
+ /// <param name="requestUrl">璇锋眰Url</param>
+ /// <param name="byteData">璇锋眰鐨勭殑鏁版嵁</param>
+ /// <param name="requestMethod">POST 鎴栬�� GET 绛夌瓑</param>
+ /// <returns>寰楀埌鍝嶅簲鐨勬暟鎹�</returns>
+ public async System.Threading.Tasks.Task<byte[]> RequestZigbeeHttpsByAdmin(string requestUrl, byte[] byteData, string requestMethod = "POST")
+ {
+ //璇锋眰Url鐨勫畬鎴愯矾寰�
+ var fullUrl = $"{Config.Instance.AdminRequestBaseUrl}/{requestUrl}";
+ return await this.DoRequestZigbeeHttpsInterface(fullUrl, byteData, Config.Instance.AdminRequestToken, requestMethod);
+ }
+
+ /// <summary>
+ /// 璇锋眰鏈嶅姟鍣ㄦ柟娉�
+ /// 鎸囧畾涓�涓猆rl,鍜岃姹傛柟娉曪紝鏁版嵁锛孋ookie锛屽緱鍒板搷搴旂殑鏁版嵁
+ /// </summary>
+ /// <param name="requestFullUrl">璇锋眰Url鐨勫畬鎴愯矾寰�</param>
+ /// <param name="byteData">璇锋眰鐨勭殑鏁版嵁</param>
+ /// <param name="token">token</param>
+ /// <param name="requestMethod">POST 鎴栬�� GET 绛夌瓑</param>
+ /// <returns>寰楀埌鍝嶅簲鐨勬暟鎹�</returns>
+ public async System.Threading.Tasks.Task<byte[]> DoRequestZigbeeHttpsInterface(string requestFullUrl, byte[] byteData, string token, string requestMethod = "POST")
+ {
+ try
+ {
+ //鍒濆鍖栨柊鐨剋ebRequst
+ //1锛� 鍒涘缓httpWebRequest瀵硅薄
+ HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(new Uri(requestFullUrl));
+
+ //2锛� 鍒濆鍖朒ttpWebRequest瀵硅薄
+ webRequest.Method = requestMethod;
+ webRequest.Timeout = 10 * 1000;
+ if (token != null)
+ {
+ //瀵瑰簲寰俊缃戝潃
+ webRequest.Headers.Add(HttpRequestHeader.Authorization, token);
+ }
+ if (requestMethod == "GET")
+ {
+ //webRequest.ContentType = "text/html";
+ webRequest.ContentType = "application/json";
+ }
+ else
+ {
+ webRequest.ContentType = "application/json";
+ webRequest.ContentLength = byteData.Length;
+
+ //3锛� 闄勫姞瑕丳OST缁欐湇鍔″櫒鐨勬暟鎹埌HttpWebRequest瀵硅薄(闄勫姞POST鏁版嵁鐨勮繃绋嬫瘮杈冪壒娈婏紝瀹冨苟娌℃湁鎻愪緵涓�涓睘鎬х粰鐢ㄦ埛瀛樺彇锛岄渶瑕佸啓鍏ttpWebRequest瀵硅薄鎻愪緵鐨勪竴涓猻tream閲岄潰銆�)
+ var newStream = webRequest.GetRequestStream();//鍒涘缓涓�涓猄tream,璧嬪�兼槸鍐欏叆HttpWebRequest瀵硅薄鎻愪緵鐨勪竴涓猻tream閲岄潰
+ newStream.Write(byteData, 0, byteData.Length);
+ newStream.Flush();
+ newStream.Close();
+ }
+
+ //4锛� 璇诲彇鏈嶅姟鍣ㄧ殑杩斿洖淇℃伅
+ var response = (HttpWebResponse)webRequest.GetResponse();
+ using (var stream = response.GetResponseStream())
+ {
+ if (stream == null)
+ {
+ return null;
+ }
+ var ms = new MemoryStream();
+ var bytes = new byte[1024];
+ var len = int.MaxValue;
+ while (stream.CanRead && 0 < len)
+ {
+ len = stream.Read(bytes, 0, bytes.Length);
+ ms.Write(bytes, 0, len);
+ }
+ return ms.ToArray();
+ }
+ }
+ catch (Exception e)
+ {
+#if DEBUG
+ System.Console.WriteLine(e.Message);
+#endif
+ return null;
+ }
+ }
+
+ /// <summary>
+ /// 鏈嶅姟鍣ㄨ幏鍙栨暟鎹け璐ユ彁绀�
+ /// </summary>
+ public void FailureToServer()
+ {
+ Application.RunOnMainThread(() =>
+ {
+ var alert = new Alert(Language.StringByID(R.MyInternationalizationString.TIP), Language.StringByID(R.MyInternationalizationString.RequestServerFailed), Language.StringByID(R.MyInternationalizationString.Confrim));
+ alert.Show();
+ });
+ }
+ /// <summary>
+ /// 鏄剧ず閿欒鎻愮ず
+ /// </summary>
+ /// <param name="errorStringID">Error string identifier.</param>
+ public void ShowErrorInfoAlert(int errorStringID)
+ {
+ Application.RunOnMainThread(() =>
+ {
+ var alert = new Alert(Language.StringByID(R.MyInternationalizationString.TIP), Language.StringByID(errorStringID), Language.StringByID(R.MyInternationalizationString.Confrim));
+ alert.Show();
+ });
+ }
+ /// <summary>
+ /// Get鏈嶅姟鍣ㄦ柟娉�1
+ /// </summary>
+ public string GetMethod(string requestUrl)
+ {
+ string requestMethod = "get";
+ string urlHead = $"{RequestHttpsHost}/FeerView/";
+ string url = urlHead + requestUrl;
+ HttpWebRequest httpWebRequestObj = WebRequest.CreateHttp(url);
+ httpWebRequestObj.Method = requestMethod;
+ using (HttpWebResponse httpWebResponseObj = httpWebRequestObj.GetResponse() as HttpWebResponse)
+ {
+ if (httpWebResponseObj == null)
+ {
+ return null;
+ }
+ else
+ {
+ Stream ResponseStream = httpWebResponseObj.GetResponseStream();
+ using (StreamReader Sr = new StreamReader(ResponseStream))
+ {
+ string responseString = Sr.ReadToEnd();
+ return responseString;
+ }
+ }
+ }
+ }
+
+ /// <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.AccountLogin();
+ CommonPage.Instance.AddChidren(login);
+ login.Show();
+ });
+ }
+ catch { }
+ }
+
+ /// <summary>
+ /// 閫�鍑虹櫥褰曟椂璋冪敤锛屾竻闄ゆ帹閫佹暟鎹�
+ /// </summary>
+ public void SignOutClearData()
+ {
+ try
+ {
+ System.Threading.Tasks.Task.Run(() =>
+ {
+ using (var client = new System.Net.Http.HttpClient())
+ {
+ client.DefaultRequestHeaders.Add("ContentType", "application/json");
+ client.DefaultRequestHeaders.Add("Authorization", Shared.Common.Config.Instance.Token);
+ var responseString = client.GetStringAsync($"{CommonPage.RequestHttpsHost}/ZigbeeUsers/SignOut");
+ }
+ });
+ }
+ catch { }
+ }
+
+ /// <summary>
+ /// 鐧诲綍鎴愬姛鍚庝笂鎶ヨ澶噄d绛夌浉鍏充俊鎭粰鍚庣
+ /// </summary>
+ /// <returns>杩斿洖鐘舵�佺爜</returns>
+ public async System.Threading.Tasks.Task<string> PushRegID()
+ {
+ try
+ {
+ string deviceAlias;
+ string deviceType;
+#if iOS
+ deviceAlias = UIKit.UIDevice.CurrentDevice.Name;
+ deviceType = "iphone";
+#elif Android
+ deviceAlias = Android.OS.Build.Manufacturer;
+ deviceType = "android";
+#endif
+ var RegIDObj = new SendDataToServer.SignZigbeeNeedPushRegIDObj()
+ {
+ RegID = Shared.Common.Config.Instance.RegistrationID,
+ DeviceAlias = deviceAlias,
+ DeviceType = deviceType
+ };
+ var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject(RegIDObj);
+ var reverObj = await CommonPage.Instance.RequestHttpsZigbeeAsync("ZigbeeUsers/SignZigbeeNeedPushRegID", System.Text.Encoding.UTF8.GetBytes(requestJson));
+ if (reverObj == null)
+ {
+ return null;
+ }
+ return reverObj.StateCode;
+ }
+ catch
+ {
+ return null;
+ }
+ }
+ }
+}
--
Gitblit v1.8.0