From 8fec9c2162b900fb59a3a3433bbcbc87c5e86777 Mon Sep 17 00:00:00 2001
From: wxr <wxr@hdlchina.com.cn>
Date: 星期四, 13 六月 2024 17:52:14 +0800
Subject: [PATCH] 更新了iOS扫码sdk,兼容最新手机系统(17.5.1);增加了阿里云日志服务

---
 HDL-ON_Android/HDL-ON_Android.csproj            |   15 ++
 HDL_ON/UI/UI2/1-HomePage/HomePage.cs            |   11 +
 DLL/IOS/HDL.Shared.IOS.ScanQRCode.dll           |    0 
 DLL/Aliyun.Api.LogService.dll                   |    0 
 HDL-ON_iOS/HDL-ON_iOS.csproj                    |   20 ++
 HDL_ON/Common/AliyunLog/AliyunLogInvokeAsync.cs |  173 ++++++++++++++++++++++++
 HDL_ON/Common/AliyunLog/AliyunLogClient.cs      |  152 +++++++++++++++++++++
 HDL_ON/UI/MainPage.cs                           |    8 +
 HDL_ON/HDL_ON.projitems                         |    2 
 HDL_ON/UI/UI0-Stan/Logic/HdlMessageLogic.cs     |   17 ++
 10 files changed, 395 insertions(+), 3 deletions(-)

diff --git a/DLL/Aliyun.Api.LogService.dll b/DLL/Aliyun.Api.LogService.dll
new file mode 100644
index 0000000..6021ab8
--- /dev/null
+++ b/DLL/Aliyun.Api.LogService.dll
Binary files differ
diff --git a/DLL/IOS/HDL.Shared.IOS.ScanQRCode.dll b/DLL/IOS/HDL.Shared.IOS.ScanQRCode.dll
index 8d81fa4..47131dd 100644
--- a/DLL/IOS/HDL.Shared.IOS.ScanQRCode.dll
+++ b/DLL/IOS/HDL.Shared.IOS.ScanQRCode.dll
Binary files differ
diff --git a/HDL-ON_Android/HDL-ON_Android.csproj b/HDL-ON_Android/HDL-ON_Android.csproj
index 5c1479b..8c3c5b0 100644
--- a/HDL-ON_Android/HDL-ON_Android.csproj
+++ b/HDL-ON_Android/HDL-ON_Android.csproj
@@ -198,6 +198,9 @@
     <Reference Include="HdlEzvizDroid">
       <HintPath>..\DLL\Android\HdlEzvizDroid.dll</HintPath>
     </Reference>
+    <Reference Include="Aliyun.Api.LogService">
+      <HintPath>..\DLL\Aliyun.Api.LogService.dll</HintPath>
+    </Reference>
   </ItemGroup>
   <ItemGroup>
     <Compile Include="MainActivity.cs" />
@@ -973,6 +976,18 @@
     <PackageReference Include="Square.OkHttp3">
       <Version>3.14.4</Version>
     </PackageReference>
+    <PackageReference Include="Google.Protobuf">
+      <Version>3.5.1</Version>
+    </PackageReference>
+    <PackageReference Include="Microsoft.AspNet.WebApi.Client">
+      <Version>5.2.4</Version>
+    </PackageReference>
+    <PackageReference Include="Iconic.Zlib.Netstandard">
+      <Version>1.0.0</Version>
+    </PackageReference>
+    <PackageReference Include="lz4net">
+      <Version>1.0.15.93</Version>
+    </PackageReference>
   </ItemGroup>
   <ItemGroup>
     <AndroidAsset Include="Assets\Language.ini" />
diff --git a/HDL-ON_iOS/HDL-ON_iOS.csproj b/HDL-ON_iOS/HDL-ON_iOS.csproj
index 87c716b..b3ce1dd 100644
--- a/HDL-ON_iOS/HDL-ON_iOS.csproj
+++ b/HDL-ON_iOS/HDL-ON_iOS.csproj
@@ -30,6 +30,7 @@
         <CodesignProvision>OnPro2307291-Dev</CodesignProvision>
         <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
         <MtouchI18n>cjk</MtouchI18n>
+        <MtouchSdkVersion>17.5</MtouchSdkVersion>
     </PropertyGroup>
     <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|iPhoneSimulator' ">
         <DebugType>none</DebugType>
@@ -55,12 +56,13 @@
         <CodesignKey>Apple Development: xuebiao huang (4P32GXQWWK)</CodesignKey>
         <MtouchDebug>true</MtouchDebug>
         <MtouchI18n>cjk</MtouchI18n>
-        <MtouchLink>None</MtouchLink>
+        <MtouchLink>SdkOnly</MtouchLink>
         <MtouchExtraArgs>-gcc_flags="-dead_strip -ObjC"</MtouchExtraArgs>
         <MtouchEnableSGenConc>false</MtouchEnableSGenConc>
 <CodesignEntitlements>Entitlements.plist</CodesignEntitlements>
 <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
 <CodesignProvision>OnPro2307291-Dev</CodesignProvision>
+<MtouchSdkVersion>17.5</MtouchSdkVersion>
     </PropertyGroup>
     <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|iPhone' ">
         <DebugType>none</DebugType>
@@ -76,6 +78,7 @@
         <MtouchI18n>cjk</MtouchI18n>
         <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
         <CodesignProvision>OnPro240130-1-Hoc</CodesignProvision>
+        <MtouchSdkVersion>17.5</MtouchSdkVersion>
     </PropertyGroup>
     <ItemGroup>
         <Reference Include="System" />
@@ -119,6 +122,9 @@
         <Reference Include="Shared.IOS">
           <HintPath>..\DLL\Shared.IOS.dll</HintPath>
         </Reference>
+        <Reference Include="Aliyun.Api.LogService">
+          <HintPath>..\DLL\Aliyun.Api.LogService.dll</HintPath>
+        </Reference>
     </ItemGroup>
     <ItemGroup>
       <PackageReference Include="Newtonsoft.Json">
@@ -142,6 +148,18 @@
       <PackageReference Include="Xamarin.iOS.SwiftRuntimeSupport">
         <Version>0.2.1</Version>
       </PackageReference>
+      <PackageReference Include="Google.Protobuf">
+        <Version>3.5.1</Version>
+      </PackageReference>
+      <PackageReference Include="Microsoft.AspNet.WebApi.Client">
+        <Version>5.2.4</Version>
+      </PackageReference>
+      <PackageReference Include="Iconic.Zlib.Netstandard">
+        <Version>1.0.0</Version>
+      </PackageReference>
+      <PackageReference Include="lz4net">
+        <Version>1.0.15.93</Version>
+      </PackageReference>
     </ItemGroup>
     <ItemGroup>
         <ImageAsset Include="Assets.xcassets\add_server1.imageset\add_server1.png" />
diff --git a/HDL_ON/Common/AliyunLog/AliyunLogClient.cs b/HDL_ON/Common/AliyunLog/AliyunLogClient.cs
new file mode 100644
index 0000000..5a12209
--- /dev/null
+++ b/HDL_ON/Common/AliyunLog/AliyunLogClient.cs
@@ -0,0 +1,152 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Threading;
+using System.Threading.Tasks;
+using Aliyun.Api.LogService;
+using Aliyun.Api.LogService.Domain.Log;
+using Aliyun.Api.LogService.Domain.LogStore.Index;
+using Aliyun.Api.LogService.Infrastructure.Protocol;
+
+namespace HDL_ON.Common.AliyunLog
+{
+	public class AliyunLogClient
+	{
+        // 鏃ュ織鏈嶅姟鐨勬湇鍔℃帴鍏ョ偣銆傛澶勪互鏉窞涓轰緥锛屽叾瀹冨湴鍩熻鏍规嵁瀹為檯鎯呭喌濉啓銆�
+        private static string endpoint = "cn-hangzhou.log.aliyuncs.com";
+        // 鏈ず渚嬩粠鐜鍙橀噺涓幏鍙朅ccessKey ID鍜孉ccessKey Secret銆�
+        private static string accessKeyId = "LTAI5tLzDxrtsFyi3xtK3YWt";
+        private static string accessKeySecret = "eX31JZrRAvC2wZWPiZU0SYhlfAUMoT";
+        // Project鍚嶇О銆�
+        private static string project = "hdl-onpro-log";
+        // Logstore鍚嶇О銆�
+        private static string logstore = "log";
+        // 鍒涘缓鏃ュ織鏈嶅姟Client銆�
+        private static ILogServiceClient client = BuildSimpleClient();
+
+        public static ILogServiceClient BuildSimpleClient()
+            => LogServiceClientBuilders.HttpBuilder
+                .Endpoint(endpoint, project)
+                .Credential(accessKeyId, accessKeySecret)
+                .Build();
+
+
+        public AliyunLogClient()
+		{
+        }
+
+
+        //// 鏋勫缓鏈�绠�鍗曠殑`ILogServiceClient`銆�
+        //public static ILogServiceClient BuildSimpleClient()
+        //    => LogServiceClientBuilders.HttpBuilder
+        //        // 鏈嶅姟鍏ュ彛<endpoint>鍙婇」鐩悕<projectName>
+        //        .Endpoint(endpoint, project)
+        //        // 璁块棶瀵嗛挜淇℃伅
+        //        .Credential(accessKeyId, accessKeySecret)
+        //        .Build();
+
+
+        //static async Task Main(string[] args)
+        //{
+        //    // 鍒涘缓Project銆�
+        //    var proRes = await client.CreateProjectAsync(project, "des");
+        //    check(proRes);
+        //    Console.WriteLine("Create project success");
+        //    Thread.Sleep(120 * 1000);
+
+        //    // 鍒涘缓Logstore銆�
+        //    var storeRes = await client.CreateLogStoreAsync(logstore, 3, 2);
+        //    check(storeRes);
+        //    Console.WriteLine("Create logstore success");
+        //    Thread.Sleep(10 * 1000);
+
+        //    // 涓篖ogstore鍒涘缓绱㈠紩銆�
+        //    var indRes = await client.CreateIndexAsync(logstore, new IndexLineInfo(new[] { ' ', ',' }));
+        //    check(indRes);
+        //    Console.WriteLine("Create Index success");
+        //    Thread.Sleep(60 * 1000);
+
+        //    // 鍚慙ogstore鍐欏叆鏁版嵁銆�
+        //    await PostLogs();
+        //    Console.WriteLine("Post logs success");
+        //    Thread.Sleep(3000);
+        //    // 鏌ヨ鏃ュ織銆�
+        //    await GetLogs();
+        //}
+
+        //public static async Task GetLogs()
+        //{
+        //    var logsRes = await client.GetLogsAsync(logstore, DateTimeOffset.UtcNow.AddMinutes(-1),
+        //        DateTimeOffset.UtcNow,
+        //        "test", "", 100, 0);
+        //    check(logsRes);
+        //    foreach (var log in logsRes.Result.Logs)
+        //    {
+        //        foreach (var key in log.Keys)
+        //        {
+        //            log.TryGetValue(key, out var value);
+        //            Console.WriteLine(key + " : " + value);
+        //        }
+
+        //        Console.WriteLine("======");
+        //    }
+        //}
+
+        public static async Task PostLogs(string topic, string msg)
+        {
+            if (client == null)
+            {
+                client = BuildSimpleClient();
+            }
+
+            try
+            {
+                var pushObj = new LogGroupInfo
+                {
+                    Topic = topic,
+#if __ANDROID__
+                    Source = "Android",
+#else
+                    Source = "IOS",
+#endif
+                    LogTags = new Dictionary<string, string>
+                    {
+                        {"tag1", DateTime.Now.ToLongTimeString()},
+
+                    },
+                    Logs = new List<LogInfo>
+                    {
+                        new LogInfo
+                        {
+                            Time = DateTimeOffset.Now,
+                            Contents = new Dictionary<string, string>
+                            {
+                                {"id", DateTime.Now.Ticks.ToString()},
+                                {"homeid", Entity.DB_ResidenceData.Instance.CurrentRegion.id},
+                                {"userid", UserInfo.Current.ID},
+                                {"userName", UserInfo.Current.userName},
+                                {"message", msg},
+                            }
+                        }
+                    }
+                };
+                var response = await client.PostLogStoreLogsAsync(logstore, pushObj);
+                check(response);
+            }
+            catch (Exception ex)
+            {
+                MainPage.Log(ex.Message);
+            }
+        }
+
+
+        public static void check(IResponse res)
+        {
+            if (!res.IsSuccess)
+            {
+                MainPage.Log("鏃ュ織鎺ㄩ�佷笉鎴愬姛.");
+                //throw new ApplicationException(res.Error.ErrorMessage);
+            }
+        }
+    }
+}
+
diff --git a/HDL_ON/Common/AliyunLog/AliyunLogInvokeAsync.cs b/HDL_ON/Common/AliyunLog/AliyunLogInvokeAsync.cs
new file mode 100644
index 0000000..717d3dc
--- /dev/null
+++ b/HDL_ON/Common/AliyunLog/AliyunLogInvokeAsync.cs
@@ -0,0 +1,173 @@
+锘縰sing System;
+using System.Linq;
+using System.Threading.Tasks;
+using Aliyun.Api.LogService;
+using Aliyun.Api.LogService.Domain;
+using Aliyun.Api.LogService.Domain.Log;
+using Aliyun.Api.LogService.Infrastructure.Protocol;
+
+namespace HDL_ON.Common.AliyunLog
+{
+	public class AliyunLogInvokeAsync
+	{
+		public AliyunLogInvokeAsync()
+		{
+		}
+
+        /// <summary>
+        /// 鎵ц璇锋眰鏂规硶銆�
+        /// </summary>
+        public static async Task<GetLogsResult> Invoke(ILogServiceClient client)
+        {
+            var response = await client.GetLogsAsync
+            (
+                // 銆屽繀濉弬鏁般�嶄細鍦� Request 鏋勯�犲櫒涓垪鍑猴紝骞朵笖涓嶅彲set锛�
+                new GetLogsRequest("example-logstore", (Int32)DateTimeOffset.UtcNow.AddDays(-1).ToUnixTimeSeconds(), (Int32)DateTimeOffset.UtcNow.ToUnixTimeSeconds())
+                {
+                    // 銆屽彲閫夊弬鏁般�嶄笉浼氬湪 Request 鏋勯�犲櫒涓垪鍑猴紝鍙�氳繃setter璁剧疆銆�
+                    Offset = 1,
+                    Line = 100,
+                }
+            );
+
+            var result = response
+                // 姝ゆ柟娉曚細纭繚杩斿洖鐨勫搷搴斿け璐ユ椂鍊欐姏鍑篳LogServiceException`銆�
+                .EnsureSuccess()
+                // 姝ゅ鑾峰彇Result鏄畨鍏ㄧ殑銆�
+                .Result;
+
+            Console.WriteLine($"RequestId锛歿response.RequestId}");
+            Console.WriteLine($"鏃ュ織鎬绘暟锛歿result.Count}");
+            Console.WriteLine($"棣栨潯鏃ュ織锛歿result.Logs.FirstOrDefault()}");
+
+            return result;
+        }
+
+        /// <summary>
+        /// 鍦ㄨ皟鐢ㄦ椂鍙娇鐢ㄦ墿灞曟柟娉曪紝鎵╁睍鏂规硶浼氬皢绠�鍗曠殑璇锋眰瀵硅薄鐨勫睘鎬у睍寮�鍒版柟娉曞叆鍙備腑銆�
+        /// 浣跨敤鎵╁睍鏂规硶 `using Aliyun.Api.Log;` 鍗冲彲銆�
+        /// </summary>
+        public static async Task<GetLogsResult> InvokeUsingExtension(ILogServiceClient client)
+        {
+            var response = await client.GetLogsAsync
+            (
+                // 銆屽繀濉弬鏁般�嶄綔涓烘柟娉曠殑鏅�氬繀椤诲弬鏁�
+                "example-logstore",
+                DateTimeOffset.UtcNow.AddDays(-1),
+                DateTimeOffset.UtcNow,
+
+                // 銆屽彲閫夊弬鏁般�嶄綔涓烘柟娉曠殑鍙�夊弬鏁帮紝鍙�氳繃鍛藉悕鍙傛暟鏂瑰紡鎸囧畾
+                offset: 1,
+                line: 10
+            );
+
+            var result = response
+                // 姝ゆ柟娉曚細纭繚杩斿洖鐨勫搷搴斿け璐ユ椂鍊欐姏鍑篳LogServiceException`銆�
+                .EnsureSuccess()
+                // 姝ゅ鑾峰彇Result鏄畨鍏ㄧ殑銆�
+                .Result;
+
+            Console.WriteLine($"RequestId锛歿response.RequestId}");
+            Console.WriteLine($"鏃ュ織鎬绘暟锛歿result.Count}");
+            Console.WriteLine($"棣栨潯鏃ュ織锛歿result.Logs.FirstOrDefault()}");
+
+            return result;
+        }
+
+        /// <summary>
+        /// 澶勭悊鏈嶅姟鍣ㄨ繑鍥烇紙鍖呭惈鍦≧esponse涓級鐨勯敊璇��
+        /// </summary>
+        public static async Task<GetLogsResult> InvokeWithErrorHandling(ILogServiceClient client)
+        {
+            var response = await client.GetLogsAsync
+            (
+                // 銆屽繀濉弬鏁般�嶄綔涓烘柟娉曠殑鏅�氬繀椤诲弬鏁�
+                "example-logstore",
+                DateTimeOffset.UtcNow.AddDays(-1),
+                DateTimeOffset.UtcNow,
+
+                // 銆屽彲閫夊弬鏁般�嶄綔涓烘柟娉曠殑鍙�夊弬鏁帮紝鍙�氳繃鍛藉悕鍙傛暟鏂瑰紡鎸囧畾
+                offset: 1,
+                line: 10
+            );
+
+            GetLogsResult result;
+            // 灏濊瘯澶勭悊鍙鐞嗙殑閿欒銆�
+            if (!response.IsSuccess)
+            {
+                // 閿欒鐮�
+                var errorCode = response.Error.ErrorCode;
+                // 閿欒娑堟伅
+                var errorMessage = response.Error.ErrorMessage;
+
+                Console.WriteLine($"RequestId锛歿response.RequestId}");
+                Console.WriteLine($"閿欒鐮侊細{errorCode}");
+                Console.WriteLine($"閿欒淇℃伅锛歿errorMessage}");
+
+                // `ErrorCode`绫诲彲鏀寔涓庤嚜韬疄渚嬫垨瀛楃涓茶繘琛屽姣斻��
+                if (errorCode == ErrorCode.SignatureNotMatch /* SDK涓瀹氫箟鐨勯敊璇爜 */)
+                {
+                    // 鍦ㄨ繖閲屽鐞嗕笟鍔″彲澶勭悊鐨勯敊璇�傘�傘�傘�傘�傘��
+                    Console.WriteLine("Signature not match, {0}.", errorMessage);
+                }
+                else if (errorCode == "ParameterInvalid" /* 涓氬姟鐩稿叧鐗规畩鐨凷DK涓湭瀹氫箟鐨勯敊璇爜 */)
+                {
+                    // 鍦ㄨ繖閲屽鐞嗕笟鍔″彲澶勭悊鐨勯敊璇�傘�傘�傘�傘�傘��
+                    Console.WriteLine("Parameter invalid, {0}.", errorMessage);
+                }
+
+                // 浠讳綍澶勭悊涓嶅埌鐨勯敊璇鍔″繀鎶涘嚭寮傚父涓柇鍘熸祦绋嬶紝閬垮厤澶栭儴鑾峰彇鍒� null 鐨勭粨鏋滐紒
+                throw new Exception("杩欓噷鍙互鏄郴缁熺殑涓氬姟寮傚父銆�" + response.Error /* 鏈�濂藉甫涓婃湇鍔¤繑鍥炵殑閿欒淇℃伅浠ヤ究璋冭瘯 */);
+            }
+            else
+            {
+                // 姝ゅ鑾峰彇Result鏄畨鍏ㄧ殑銆�
+                result = response.Result;
+            }
+
+            Console.WriteLine($"RequestId锛歿response.RequestId}");
+            Console.WriteLine($"鏃ュ織鎬绘暟锛歿result.Count}");
+            Console.WriteLine($"棣栨潯鏃ュ織锛歿result.Logs.FirstOrDefault()}");
+
+            return result;
+        }
+
+        /// <summary>
+        /// 澶勭悊浠ュ紓甯稿舰寮忔姏鍑虹殑閿欒銆�
+        /// </summary>
+        public static async Task<GetLogsResult> InvokeWithExceptionHandling(ILogServiceClient client)
+        {
+            try
+            {
+                return await Invoke(client);
+            }
+            catch (LogServiceException e)
+            {
+                // 閿欒鐮�
+                var errorCode = e.ErrorCode;
+                // 閿欒娑堟伅
+                var errorMessage = e.ErrorMessage;
+
+                Console.WriteLine($"RequestId锛歿e.RequestId}");
+                Console.WriteLine($"閿欒鐮侊細{errorCode}");
+                Console.WriteLine($"閿欒淇℃伅锛歿errorMessage}");
+
+                // `ErrorCode`绫诲彲鏀寔涓庤嚜韬疄渚嬫垨瀛楃涓茶繘琛屽姣斻��
+                if (errorCode == ErrorCode.SignatureNotMatch /* SDK涓瀹氫箟鐨勯敊璇爜 */)
+                {
+                    // 鍦ㄨ繖閲屽鐞嗕笟鍔″彲澶勭悊鐨勯敊璇�傘�傘�傘�傘�傘��
+                    Console.WriteLine("Signature not match, {0}.", errorMessage);
+                }
+                else if (errorCode == "ParameterInvalid" /* 涓氬姟鐩稿叧鐗规畩鐨凷DK涓湭瀹氫箟鐨勯敊璇爜 */)
+                {
+                    // 鍦ㄨ繖閲屽鐞嗕笟鍔″彲澶勭悊鐨勯敊璇�傘�傘�傘�傘�傘��
+                    Console.WriteLine("Parameter invalid, {0}.", errorMessage);
+                }
+
+                // 浠讳綍澶勭悊涓嶅埌鐨勯敊璇鍔″繀鎶涘嚭寮傚父涓柇鍘熸祦绋嬶紝閬垮厤澶栭儴鑾峰彇鍒� null 鐨勭粨鏋滐紒
+                throw new Exception("杩欓噷鍙互鏄郴缁熺殑涓氬姟寮傚父銆�", e /* 鍦ㄨ嚜瀹氫箟鐨勫紓甯镐腑鏈�濂藉甫涓婃湇鍔¤繑鍥炵殑寮傚父浠ヤ究璋冭瘯 */);
+            }
+        }
+    }
+}
+
diff --git a/HDL_ON/HDL_ON.projitems b/HDL_ON/HDL_ON.projitems
index 5ea2e77..59a87d6 100644
--- a/HDL_ON/HDL_ON.projitems
+++ b/HDL_ON/HDL_ON.projitems
@@ -594,6 +594,8 @@
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\Constant.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Scene\SceneAutomationListChoosePage.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Scene\SceneTargetTypeChoosePage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Common\AliyunLog\AliyunLogClient.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Common\AliyunLog\AliyunLogInvokeAsync.cs" />
   </ItemGroup>
   <ItemGroup>
     <Folder Include="$(MSBuildThisFileDirectory)Entity\Device\" />
diff --git a/HDL_ON/UI/MainPage.cs b/HDL_ON/UI/MainPage.cs
index b56522b..ed56fc1 100644
--- a/HDL_ON/UI/MainPage.cs
+++ b/HDL_ON/UI/MainPage.cs
@@ -649,6 +649,14 @@
         {
 #if DEBUG
             Console.WriteLine($"{tag}-->{msg}");
+            if (tag == "error")
+            {
+                new System.Threading.Thread(async () =>
+                {
+                    await Common.AliyunLog.AliyunLogClient.PostLogs("鑷畾涔塃rror鏃ュ織", msg);
+                })
+                { IsBackground = true }.Start();
+            }
 #endif
         }
 
diff --git a/HDL_ON/UI/UI0-Stan/Logic/HdlMessageLogic.cs b/HDL_ON/UI/UI0-Stan/Logic/HdlMessageLogic.cs
index 6a0f24c..b69b97c 100644
--- a/HDL_ON/UI/UI0-Stan/Logic/HdlMessageLogic.cs
+++ b/HDL_ON/UI/UI0-Stan/Logic/HdlMessageLogic.cs
@@ -89,7 +89,14 @@
                 form.AddForm(string.Empty);
                 form.SetTextContent(msg);
 
-            }, "ok");
+            }, "ok");
+
+            //涓婃姤鏃ュ織鏈嶅姟鍣�
+            new System.Threading.Thread(async () =>
+            {
+                await Common.AliyunLog.AliyunLogClient.PostLogs("App绋嬪簭閿欒", ex.Message);
+            })
+            { IsBackground = true }.Start();
         }
 
         /// <summary>
@@ -104,7 +111,13 @@
                 form.AddForm(string.Empty);
                 form.SetTextContent(msg);
 
-            }, "ok");
+            }, "ok");
+            //涓婃姤鏃ュ織鏈嶅姟鍣�
+            new System.Threading.Thread(async () =>
+            {
+                await Common.AliyunLog.AliyunLogClient.PostLogs("App绋嬪簭閿欒", msg);
+            })
+            { IsBackground = true }.Start();
         }
 
 
diff --git a/HDL_ON/UI/UI2/1-HomePage/HomePage.cs b/HDL_ON/UI/UI2/1-HomePage/HomePage.cs
index 03de85a..9c4f0e5 100644
--- a/HDL_ON/UI/UI2/1-HomePage/HomePage.cs
+++ b/HDL_ON/UI/UI2/1-HomePage/HomePage.cs
@@ -553,6 +553,17 @@
                 LoadContentView();
 
                 #endregion
+
+#if DEBUG
+                btnResidenceName.MouseUpEventHandler = (envent, ee) => {
+                    MainPage.Log("sss");
+                    new System.Threading.Thread(async() =>
+                    {
+                        await Common.AliyunLog.AliyunLogClient.PostLogs("鍛婅娴嬭瘯", "娴嬭瘯淇℃伅娴嬭瘯淇℃伅娴嬭瘯淇℃伅娴嬭瘯淇℃伅娴嬭瘯淇℃伅娴嬭瘯淇℃伅娴嬭瘯淇℃伅娴嬭瘯淇℃伅娴嬭瘯淇℃伅娴嬭瘯淇℃伅娴嬭瘯淇℃伅娴嬭瘯淇℃伅娴嬭瘯淇℃伅");
+                    })
+                    { IsBackground = true }.Start();
+                };
+#endif
             }
             catch (Exception ex)
             {

--
Gitblit v1.8.0