From 3f6685c77beeb12baf840733fb890860f4c26e7c Mon Sep 17 00:00:00 2001 From: mac <user@users-MacBook-Pro.local> Date: 星期四, 25 七月 2024 17:25:59 +0800 Subject: [PATCH] 2024年07月25日17:24:45 --- HDL_ON/UI/UI2/FuntionControlView/VideoDoorLock/CommonMethod.cs | 435 ++++++++++++++++++++++++++++++++++++++++------------- 1 files changed, 324 insertions(+), 111 deletions(-) diff --git a/HDL_ON/UI/UI2/FuntionControlView/VideoDoorLock/CommonMethod.cs b/HDL_ON/UI/UI2/FuntionControlView/VideoDoorLock/CommonMethod.cs index ccca825..e9393fd 100644 --- a/HDL_ON/UI/UI2/FuntionControlView/VideoDoorLock/CommonMethod.cs +++ b/HDL_ON/UI/UI2/FuntionControlView/VideoDoorLock/CommonMethod.cs @@ -2,7 +2,9 @@ using HDL_ON.Entity; using System.Collections.Generic; using Shared; +using HDL_ON.DAL.Server; #if __IOS__ +using Foundation; #else using Com.Videogo.Hdl; #endif @@ -14,6 +16,7 @@ /// </summary> public class CommonMethod { + private Loading loading; /// <summary> /// 璁板綍褰撳墠鐣岄潰绱㈠紩鍊� @@ -39,49 +42,83 @@ } -#region --------- 璺宠浆鍒癆ndroid閭h竟鐨勬柟娉�(钀ょ煶瑙嗛闂ㄩ攣) -------- + #region --------- 璺宠浆鍒癆ndroid锛宨os閭h竟鐨勬柟娉�(钀ょ煶瑙嗛闂ㄩ攣) -------- /// <summary> - /// 璇诲彇浜戠鐨勪笂璁惧鍒楄〃(android婧愮敓娣诲姞璁惧鍒颁簯绔垚鍔熷悗) - /// <paramref name="devSerial"/>璁惧搴忓垪鍙�</param> - /// </summary> + /// android,ios婧愮敓娣诲姞璁惧鍒颁簯绔垚鍔熷悗鍥炶皟鏂规硶 + /// 鍐嶈鍙栦簯绔殑涓婅悿鐭宠澶囧垪琛� + /// <paramref name="spk"/>spk</param> public void SkipAddDeviceActivity(string spk) { + + this.InitializationAndroidData((isEzChildAccessToken) => + { + this.SunThread(() => + { + var list = this.GetVideoDoorLockLockModelsList("notAllowedConfigNetworkModels"); + + this.MainThread(() => + { #if __IOS__ + //璺宠浆娣诲姞钀ょ煶璁惧 + ezsdkDelegate = new IosIHdlInterface(); + ezsdkDelegate.mAction += (serials) => + { + this.GetYingshiDeviceList(serials); + }; + EZSDK.IOS.EZSDK.SharedInstance().Delegate = ezsdkDelegate; + NSObject[] nSObject = new NSObject[list.Count]; + for (int i = 0; i < list.Count; i++) + { + string strValue = list[i]; + nSObject[i] = new NSString(strValue); + } + EZSDK.IOS.EZSDK.SharedInstance().ConnectTipModels = nSObject; + EZSDK.IOS.EZSDK.SharedInstance().AddEzvizMonitorWithDeviceType(spk); #else - this.InitializationAndroidData((isBools) => - { - if (!isBools) { - this.MainThread(()=> { - this.ShowTip("鍏堣幏鍙栬悿鐭充簯瀛愯处鍙穞oken澶辫触銆�"); - - }); - } - HDLEzvizSdk.Instance.JumpToEZScanActivity(Application.Activity,spk); - HDLEzvizSdk.SetAddCallback(new AndroidIHdlInterface((isBool, adnroidActionDevSerial) => - { - if (isBool) + HDLEzvizSdk.Instance.JumpToEZScanActivity(Application.Activity, spk,list); + HDLEzvizSdk.SetAddCallback(new + AndroidIHdlInterface((isBool, serials) => { - - var list = VideDoorLockSend.Current.GetVideoDoorLockDeviceList(SPK.VideoDoorLock); - if (list.Count > 0) + if (isBool) { - var function = list.Find((o) => o.sid == adnroidActionDevSerial); - if (function != null) - { - this.SaveFunctionFile(function); - } + this.GetYingshiDeviceList(serials); } + })); +#endif - } + }); - })); + + }); }); -#endif + + + } + /// <summary> + /// 璇诲彇浜戠鐨勪笂钀ょ煶璁惧鍒楄〃 + /// <paramref name="serials"/>搴忓垪鍙�</param> + private void GetYingshiDeviceList(string serials) + { + this.SunThread(() => + { + var list = VideDoorLockSend.Current.GetVideoDoorLockDeviceList(SPK.VideoDoorLock); + this.MainThread(() => + { + if (list.Count > 0) + { + var function = list.Find((o) => o.sid == serials); + if (function != null) + { + this.SaveFunctionFile(function); + } + } + }); + }); } /// <summary> @@ -90,49 +127,90 @@ /// <param name="deviceSerial">璁惧搴忓垪鍙�</param> /// <param name="deviceId">璁惧id(浜戠涓奷eviceId)</param> /// <param name="spk">璁惧spk(浜戦泙涓婂畾涔夊ソ鐨�)</param> - public void SkipRTVActivity(string deviceSerial, string deviceId, string spk) + /// <param name="isDialog">鏄惁闇�瑕佸脊妗�</param> + public void SkipRTVActivity(string deviceSerial, string deviceId, string spk, bool isDialog) { -#if __IOS__ -#else - this.InitializationAndroidData((isBools) => + this.Loading.Start(); + this.InitializationAndroidData((isEzChildAccessToken) => { - if (!isBools) + this.MainThread(() => { - this.MainThread(() => { - this.ShowTip("鍏堣幏鍙栬悿鐭充簯瀛愯处鍙穞oken澶辫触銆�"); + this.Loading.Hide(); + if (isDialog) + { + Video.View.ShowDialog.Currnet.ClickBox(Language.StringByID(StringId.laizimenlinghujiao), (dialog) => + { + dialog.Close(); + this.SkipRTVActivity(deviceSerial, deviceId, spk); + }, (dialog) => { dialog.Close(); }); + } + else + { + this.SkipRTVActivity(deviceSerial, deviceId, spk); + } - }); - } - Video.View.ShowDialog.Currnet.ClickBox(Language.StringByID(StringId.laizimenlinghujiao), (dialog) => - { - dialog.Close(); - HDLEzvizSdk.Instance.JumpToEZRealPlayActivity(Application.Activity,deviceId,deviceSerial,spk); - }, (dialog) => - { - dialog.Close(); }); - }); - -#endif } + /// <summary> + /// 鎵撳紑瀹炴椂瑙嗛鐢婚潰 + /// </summary> + /// <param name="deviceSerial">璁惧搴忓垪鍙�</param> + /// <param name="deviceId">璁惧id(浜戠涓奷eviceId)</param> + /// <param name="spk">璁惧spk(浜戦泙涓婂畾涔夊ソ鐨�)</param> + private void SkipRTVActivity(string deviceSerial, string deviceId, string spk) + { + +#if __IOS__ + //鎵撳紑钀ょ煶瑙嗛鐣岄潰 + EZSDK.IOS.EZSDK.SharedInstance().PlayWithDeviceSerial(deviceSerial, deviceId, spk); + +#else + HDLEzvizSdk.Instance.JumpToEZRealPlayActivity(Application.Activity,deviceId,deviceSerial,spk,""); +#endif + + + } + /// <summary> + /// 鎵撳紑瀹炴椂瑙嗛鐢婚潰 + /// </summary> + /// <param name="deviceSerial">璁惧搴忓垪鍙�</param> + /// <param name="deviceId">璁惧id(浜戠涓奷eviceId)</param> + /// <param name="spk">璁惧spk(浜戦泙涓婂畾涔夊ソ鐨�)</param> + /// <param name="msgId">娑堟伅id</param> + private void SkipRTVActivity(string deviceSerial, string deviceId, string spk, string msgId) + { + +#if __IOS__ + //鎵撳紑钀ょ煶瑙嗛鐣岄潰 + EZSDK.IOS.EZSDK.SharedInstance().PlayWithDeviceSerial(deviceSerial, deviceId, spk, msgId); + +#else + HDLEzvizSdk.Instance.JumpToEZRealPlayActivity(Application.Activity,deviceId,deviceSerial,spk,msgId); +#endif + + + } + /// <summary> /// 娴忚鍘嗗彶璁板綍 /// </summary> public void SkipRecordActivity(string deviceId) { - this.InitializationAndroidData((s)=> { - + this.InitializationAndroidData((s) => + { + this.MainThread(() => + { #if __IOS__ + //鎵撳紑钀ょ煶鍘嗗彶璁板綍鐣岄潰 + EZSDK.IOS.EZSDK.SharedInstance().ToDeviceMsgListView(deviceId); #else HDLEzvizSdk.Instance.JumpLockHistoryActivity(Application.Activity, deviceId); #endif - + }); }); - //鏈疄鐜� - //this.InitializationAndroidData(); - // + } /// <summary> /// 涓存椂瀵嗙爜寮�闂� @@ -140,22 +218,17 @@ /// </summary> public void SkipPSWActivity(string deviceId) { - this.InitializationAndroidData((isBools) => { - if (!isBools) + this.MainThread(() => { - this.MainThread(() => - { - this.ShowTip("鍏堣幏鍙栬悿鐭充簯瀛愯处鍙穞oken澶辫触銆�"); - - }); - } #if __IOS__ + //鎵撳紑钀ょ煶涓存椂瀵嗙爜鐣岄潰 + EZSDK.IOS.EZSDK.SharedInstance().ToTemPassView(deviceId); #else - HDLEzvizSdk.Instance.JumpTempPasswordActivity(Application.Activity, deviceId); + HDLEzvizSdk.Instance.JumpTempPasswordActivity(Application.Activity, deviceId); #endif - + }); }); } @@ -164,9 +237,8 @@ /// </summary> public void InitializationAndroidData(Action<bool> action) { - - bool isBool = true; + //this.Loading.Start(); this.SunThread(() => { try @@ -179,29 +251,38 @@ { //Token isBool = false; - return; + //this.ShowTip("鑾峰彇钀ょ煶浜戝瓙璐﹀彿token澶辫触銆�"); + return; } - Application.RunOnMainThread(() => - { + + string appKey = "1aa98a90489b4838b966b57018b4b04b";//姝e紡鏈嶅姟鍣� + //if (OnAppConfig.Instance.RequestHttpsHost == "https://test-gz.hdlcontrol.com") + //{ + // appKey = "941b1b72b6294998acfd36c14931b675";//鐢ㄥ湪娴嬭瘯鏈嶅姟鍣ㄦ帹閫佺殑 + //} + + #if __IOS__ - //iOS - //鍒濆鍖栬悿鐭充簯SDK锛屼腑鏂囧浗鍐卥ey銆佽嫳鏂囨捣澶杒ey 寮�鍙戣�呰处鍙蜂娇鐢ㄥ簲鐢ㄥ寘鍚嶇敵璇风殑APPKEY锛屼笉鍚屽寘鍚嶅簲鐢ㄩ渶閰嶇疆涓嶅悓鐨凙PPKEY - EZSDK.IOS.EZSDK.SharedInstance().InitLibWithAppKey("1aa98a90489b4838b966b57018b4b04b", "1aa98a90489b4838b966b57018b4b04b"); - //1.璁剧疆鎵�闇�娌充笢鐨凙ccessToken鍜孯efreshToken銆佸煙鍚嶅湴鍧� - EZSDK.IOS.EZSDK.SharedInstance().SetHDlAccessToken(UserInfo.Current.LoginTokenString, UserInfo.Current.RefreshToken); - EZSDK.IOS.EZSDK.SharedInstance().SetRequestHttpsHostAndPlatform(OnAppConfig.Instance.RequestHttpsHost, 1, DB_ResidenceData.Instance.CurrentRegion.id); - //2.璁剧疆钀ょ煶瀛愯处鍙风殑AccessToken鍒癝DK - EZSDK.IOS.EZSDK.SharedInstance().SetEZAccessToken(ezChildAccessToken); - ////3.鎵撳紑鎽勫儚澶磋澶囧垪琛ㄩ〉闈� - EZSDK.IOS.EZSDK.SharedInstance().Go2EZvizMonitor(); - //EZSDK.IOS.EZDeviceInfo info = new EZSDK.IOS.EZDeviceInfo(); - //info.de - //EZSDK.IOS.EZSDK.Play(info); + //iOS + //鍒濆鍖栬悿鐭充簯SDK锛屼腑鏂囧浗鍐卥ey銆佽嫳鏂囨捣澶杒ey 寮�鍙戣�呰处鍙蜂娇鐢ㄥ簲鐢ㄥ寘鍚嶇敵璇风殑APPKEY锛屼笉鍚屽寘鍚嶅簲鐢ㄩ渶閰嶇疆涓嶅悓鐨凙PPKEY + EZSDK.IOS.EZSDK.SharedInstance().InitLibWithAppKey(appKey, appKey); + //1.璁剧疆鎵�闇�娌充笢鐨凙ccessToken鍜孯efreshToken銆佸煙鍚嶅湴鍧� + EZSDK.IOS.EZSDK.SharedInstance().SetHDlAccessToken(UserInfo.Current.LoginTokenString, UserInfo.Current.RefreshToken); + EZSDK.IOS.EZSDK.SharedInstance().SetRequestHttpsHostAndPlatform(OnAppConfig.Instance.RequestHttpsHost, 1, DB_ResidenceData.Instance.CurrentRegion.id); + //2.璁剧疆钀ょ煶瀛愯处鍙风殑AccessToken鍒癝DK + EZSDK.IOS.EZSDK.SharedInstance().SetEZAccessToken(ezChildAccessToken); + //////3.鎵撳紑鎽勫儚澶磋澶囧垪琛ㄩ〉闈� + //EZSDK.IOS.EZSDK.SharedInstance().Go2EZvizMonitor(); + //EZSDK.IOS.EZDeviceInfo info = new EZSDK.IOS.EZDeviceInfo(); + //info.de + //EZSDK.IOS.EZSDK.Play(info); #else - HDLEzvizSdk.Instance.Init(Application.Activity.Application, ezChildAccessToken, UserInfo.Current.LoginTokenString, UserInfo.Current.RefreshToken, OnAppConfig.Instance.RequestHttpsHost, "1aa98a90489b4838b966b57018b4b04b", 1, DB_ResidenceData.Instance.CurrentRegion.id); + + HDLEzvizSdk.Instance.Init(Application.Activity.Application, ezChildAccessToken, UserInfo.Current.LoginTokenString, UserInfo.Current.RefreshToken, OnAppConfig.Instance.RequestHttpsHost, appKey, 1, DB_ResidenceData.Instance.CurrentRegion.id, + HttpUtil.APP_KEY, HttpUtil.SECRET_KEY); #endif - }); + }); @@ -213,6 +294,7 @@ { this.MainThread(() => { + //this.Loading.Hide(); action?.Invoke(isBool); }); } @@ -225,28 +307,125 @@ /// <param name="home">瀵硅薄</param> public void ChangeCurrHome(RegionInfoRes home) { + if (DB_ResidenceData.Instance.CurrentRegion.id == home.id || string.IsNullOrEmpty(home.id)) return; +#if __IOS__ +#else + HDLEzvizSdk.Instance.SetHomeId(home.id); + +#endif } -#endregion + #endregion /// <summary> - /// 钀ょ煶瑙嗛闂ㄩ攣鐨勫浘鏍� - /// <param name="comerom">鏉ヨ嚜閭i噷</param> + /// 鑾峰彇銆愰棬閿佸瀷鍙枫�戝垪琛� /// </summary> - public string GetVideoDoorLockIcon(Comerom comerom) + /// <returns>杩斿洖缁撴灉涓嶄細涓簄ull</returns> + public List<string> GetVideoDoorLockLockModelsList(string mode = "lockModels") { - if (comerom == Comerom.collect) + var lockModels = VideDoorLockSend.Current.GetVideoDoorLockLockModelsList(); + if (mode == "lockModels") { - return "FunctionIcon/DoorLock/VideoDoorLockOpen.png"; + return lockModels.lockModels; } else { - return "FunctionIcon/DoorLock/VideoDoorlockClose.png"; + return lockModels.notAllowedConfigNetworkModels; + } + } + /// <summary> + /// 闂ㄩ攣鎺ㄩ�� + /// </summary> + /// <param name="pushMessageType"></param> + /// <param name="jPushMessageInfo"></param> + public void DoorLockPush(JPushMessageInfo jpushMessageInfo) + { + this.MainThread(() => + { + if (string.IsNullOrEmpty(jpushMessageInfo.expantContent)) return; + try + { + //{ "deviceSid":"J92513662","type":"opendoormsg","extDevId":"J92513662","deviceId":"1641010144999936001","spk":"security.door.ezviz"} + var expantContent = Newtonsoft.Json.JsonConvert.DeserializeObject<ExpantContent>(jpushMessageInfo.expantContent); + if (expantContent == null) + { + return; + } + if (expantContent.spk == null) + { + return; + } + if ( expantContent.spk != SPK.VideoDoorLock) + { + return; + } + if (jpushMessageInfo.messageType.Contains(PushMessageType.DOOR_BELL.ToString())) + { + ///鎵撳紑瑙嗛闂ㄩ攣 + string currentTimeStr = Utlis.GetTimestamp(); // 褰撳墠鏃堕棿 + + if (string.IsNullOrEmpty(expantContent.currentTime) && string.IsNullOrEmpty(currentTimeStr) && (long.Parse(currentTimeStr) - long.Parse(expantContent.currentTime)) > 30000) + { // 瓒呮椂30s + this.SkipRTVActivity(expantContent.devSerial, expantContent.deviceId, expantContent.spk, true); + } + else + { + this.SkipRTVActivity(expantContent.devSerial, expantContent.deviceId, expantContent.spk, expantContent.msgId); + } + } + else if (jpushMessageInfo.messageType.Contains(PushMessageType.Alarm.ToString())) + { + //浣庣數閲忔帹閫� + this.UpdateDoorLockState(PushMessageType.Alarm); + } + else if (jpushMessageInfo.messageType.Contains(PushMessageType.Prompt.ToString())) + { + //寮�闂ㄦ帹閫� + this.UpdateDoorLockState(PushMessageType.Prompt); + } + }catch(Exception ex) + { + + } + }); + + } + /// <summary> + /// 鏇存柊寮�閿佸浘鏍囧拰鐢垫睜鐘舵�� + /// </summary> + private void UpdateDoorLockState(PushMessageType pushMessageType) + { + int childrenCount = MainPage.BasePageView.ChildrenCount - 1; + for (int i = childrenCount; childrenCount > i; i--) + { + View view = MainPage.BasePageView.GetChildren(i); + if (view is VideoDoorLockPage) + { + VideoDoorLockPage videoDoorLockPage = (VideoDoorLockPage)view; + if (videoDoorLockPage != null) + { + videoDoorLockPage.UpdateState(pushMessageType); + } + + } } } -#region --------- 鍔熻兘鏂囦欢淇濆瓨锛屽垹闄� -------- + /// <summary> + /// 鑾峰彇钀ょ煶瑙嗛銆愰棬閿併�戝垪琛� + /// </summary> + /// <returns></returns> + public List<Function> GetVideoDoorLockList() + { + var list = FunctionList.List.GetVideoDoorLockList(); +#if DEBUG + //list.Add(new Function { name = "瑙嗛闂ㄩ攣涓�", sid = "23456789", spk = SPK.VideoDoorLock }); + //list.Add(new Function { name = "瑙嗛闂ㄩ攣浜�", sid = "2345678922", spk = SPK.VideoDoorLock }); +#endif + return list; + } + #region --------- 鍔熻兘鏂囦欢淇濆瓨锛屽垹闄� -------- /// <summary> /// 淇濆瓨鏈湴鏂囦欢 /// </summary> @@ -270,7 +449,25 @@ FunctionList.List.DeleteFunction(function); MainPage.Log($"鏂囦欢鍒犻櫎->{function.name}-->{function.spk}"); } -#endregion + #endregion + /// <summary> + /// 钀ょ煶瑙嗛闂ㄩ攣鐨勫浘鏍� + /// <param name="comerom">鏉ヨ嚜閭i噷</param> + /// </summary> + public string GetVideoDoorLockIcon(Comerom comerom) + { + + if (comerom == Comerom.collect) + { + return "FunctionIcon/DoorLock/VideoDoorLockOpen1.png"; + } + else + { + return "FunctionIcon/DoorLock/VideoDoorlockClose1.png"; + } + + } + /// <summary> /// 鑾峰彇Loading瀵硅薄 /// </summary> @@ -304,20 +501,8 @@ } - /// <summary> - /// 鑾峰彇钀ょ煶瑙嗛闂ㄩ攣鍒楄〃 - /// </summary> - /// <returns></returns> - public List<Function> GetVideoDoorLockList() - { - var list = FunctionList.List.GetVideoDoorLockList(); -#if DEBUG - //list.Add(new Function { name = "瑙嗛闂ㄩ攣涓�", sid = "23456789", spk = SPK.VideoDoorLock }); - //list.Add(new Function { name = "瑙嗛闂ㄩ攣浜�", sid = "2345678922", spk = SPK.VideoDoorLock }); -#endif - return list; - } -#region ---------鑷畾涔夌嚎绋�(瀛愮嚎绋嬶紝涓荤嚎绋�)-------- + + #region ---------鑷畾涔夌嚎绋�(瀛愮嚎绋嬶紝涓荤嚎绋�)-------- /// <summary> /// 瀛愮嚎绋� /// </summary> @@ -359,8 +544,8 @@ }); } -#endregion -#region --------- 鎻愮ず妗嗭紝纭妗� -------- + #endregion + #region --------- 鎻愮ず妗嗭紝纭妗� -------- /// <summary> /// 瀵硅瘽妗�(鍙绋嬪簭鎶ラ敊鐨勬椂鍊欐墠鐢ㄥ埌) /// </summary> @@ -400,7 +585,9 @@ new PublicAssmebly().TipMsgAutoClose(msg, false, time * 1000); }); } -#endregion + + + #endregion /// <summary> /// 寮规绫诲瀷 /// </summary> @@ -419,17 +606,40 @@ collect,//鏀惰棌 room,//鎴块棿 push,//鎺ㄩ�� + sanfan,//娣诲姞绗笁鏂硅澶� } #if __IOS__ + IosIHdlInterface ezsdkDelegate; + /// <summary> + /// 涓撻棬瀹氫箟缁橧os鍥炶皟鐢�,娌℃湁鐗规畩鍚箟 + /// </summary> + public class IosIHdlInterface : EZSDK.IOS.EZSDKDelegate + { + public Action<string> mAction; + public IosIHdlInterface() + { + + } + /// <summary> + /// + /// </summary> + /// <param name="p0">true鏄叆缃戞垚鍔�(婧愮敓鍥炶皟杩斿洖)</param> + /// <param name="p1">璁惧鐨勫簭鍒楀寲(婧愮敓鍥炶皟杩斿洖)</param> + public override void AddDeviceSuccessed(string deviceSerial) + { + mAction?.Invoke(deviceSerial); + } + } #else /// <summary> - /// + /// 涓撻棬瀹氫箟缁欏畨鍗撳洖璋冪敤,娌℃湁鐗规畩鍚箟 /// </summary> public class AndroidIHdlInterface : Java.Lang.Object, IHdlInterface { Action<bool,string> mAction; + Action<string> mDoorlockAnswer; public AndroidIHdlInterface(Action<bool,string> action) { mAction = action; @@ -444,12 +654,15 @@ mAction?.Invoke(p0,p1); } - + public void DoorlockAnswer(string p0) + { + mDoorlockAnswer?.Invoke(p0); + } } #endif } - + } -- Gitblit v1.8.0