| | |
| | | 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 |
| | |
| | | /// </summary> |
| | | public class CommonMethod |
| | | { |
| | | |
| | | private Loading loading; |
| | | /// <summary> |
| | | /// 记录当前界面索引值 |
| | |
| | | |
| | | this.InitializationAndroidData((isEzChildAccessToken) => |
| | | { |
| | | |
| | | this.MainThread(() => |
| | | this.SunThread(() => |
| | | { |
| | | #if __IOS__ |
| | | //跳转添加萤石设备 |
| | | ezsdkDelegate = new IosIHdlInterface(); |
| | | ezsdkDelegate.mAction += (serials) => |
| | | var list = this.GetVideoDoorLockLockModelsList("notAllowedConfigNetworkModels"); |
| | | |
| | | this.MainThread(() => |
| | | { |
| | | this.GetYingshiDeviceList(serials); |
| | | }; |
| | | EZSDK.IOS.EZSDK.SharedInstance().Delegate = ezsdkDelegate; |
| | | EZSDK.IOS.EZSDK.SharedInstance().AddEzvizMonitorWithDeviceType(spk); |
| | | #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 |
| | | HDLEzvizSdk.Instance.JumpToEZScanActivity(Application.Activity,spk); |
| | | HDLEzvizSdk.SetAddCallback(new AndroidIHdlInterface((isBool, serials) => |
| | | { |
| | | if (isBool) |
| | | HDLEzvizSdk.Instance.JumpToEZScanActivity(Application.Activity, spk,list); |
| | | HDLEzvizSdk.SetAddCallback(new AndroidIHdlInterface((isBool, serials) => |
| | | { |
| | | this.GetYingshiDeviceList(serials); |
| | | } |
| | | if (isBool) |
| | | { |
| | | this.GetYingshiDeviceList(serials); |
| | | } |
| | | |
| | | })); |
| | | })); |
| | | #endif |
| | | |
| | | }); |
| | | |
| | | |
| | | }); |
| | | |
| | | |
| | | }); |
| | | |
| | | |
| | |
| | | /// <param name="isDialog">是否需要弹框</param> |
| | | public void SkipRTVActivity(string deviceSerial, string deviceId, string spk, bool isDialog) |
| | | { |
| | | |
| | | this.Loading.Start(); |
| | | this.InitializationAndroidData((isEzChildAccessToken) => |
| | | { |
| | | this.MainThread(() => |
| | | { |
| | | this.Loading.Hide(); |
| | | if (isDialog) |
| | | { |
| | | Video.View.ShowDialog.Currnet.ClickBox(Language.StringByID(StringId.laizimenlinghujiao), (dialog) => |
| | |
| | | public void InitializationAndroidData(Action<bool> action) |
| | | { |
| | | bool isBool = true; |
| | | //this.Loading.Start(); |
| | | this.SunThread(() => |
| | | { |
| | | try |
| | |
| | | { |
| | | //Token |
| | | isBool = false; |
| | | this.ShowTip("先获取萤石云子账号token失败。"); |
| | | //this.ShowTip("获取萤石云子账号token失败。"); |
| | | return; |
| | | } |
| | | |
| | | string appKey = "1aa98a90489b4838b966b57018b4b04b";//正式服务器 |
| | | //if (OnAppConfig.Instance.RequestHttpsHost == "https://test-gz.hdlcontrol.com") |
| | | //{ |
| | | // appKey = "941b1b72b6294998acfd36c14931b675";//用在测试服务器推送的 |
| | | //} |
| | | |
| | | |
| | | #if __IOS__ |
| | | //iOS |
| | | //初始化萤石云SDK,中文国内key、英文海外key 开发者账号使用应用包名申请的APPKEY,不同包名应用需配置不同的APPKEY |
| | | EZSDK.IOS.EZSDK.SharedInstance().InitLibWithAppKey("1aa98a90489b4838b966b57018b4b04b", "1aa98a90489b4838b966b57018b4b04b"); |
| | | EZSDK.IOS.EZSDK.SharedInstance().InitLibWithAppKey(appKey, appKey); |
| | | //1.设置所需河东的AccessToken和RefreshToken、域名地址 |
| | | 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); |
| | |
| | | //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); |
| | | |
| | | #endif |
| | | |
| | |
| | | { |
| | | this.MainThread(() => |
| | | { |
| | | //this.Loading.Hide(); |
| | | action?.Invoke(isBool); |
| | | }); |
| | | } |
| | |
| | | /// 获取【门锁型号】列表 |
| | | /// </summary> |
| | | /// <returns>返回结果不会为null</returns> |
| | | public List<string> GetVideoDoorLockLockModelsList() |
| | | public List<string> GetVideoDoorLockLockModelsList(string mode = "lockModels") |
| | | { |
| | | return VideDoorLockSend.Current.GetVideoDoorLockLockModelsList(); |
| | | var lockModels = VideDoorLockSend.Current.GetVideoDoorLockLockModelsList(); |
| | | if (mode == "lockModels") |
| | | { |
| | | return lockModels.lockModels; |
| | | } |
| | | else |
| | | { |
| | | 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; |
| | | //{ "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 != SPK.VideoDoorLock) |
| | | { |
| | | return; |
| | | } |
| | | if (jpushMessageInfo.messageType.Contains(PushMessageType.DOOR_BELL.ToString())) |
| | | { |
| | | ///打开视频门锁 |
| | | this.SkipRTVActivity(expantContent.devSerial, expantContent.deviceId, expantContent.spk, true); |
| | | } |
| | | else if (jpushMessageInfo.messageType.Contains(PushMessageType.Alarm.ToString())) |
| | | { |
| | | //低电量推送 |
| | | this.UpdateDoorLockState(PushMessageType.Alarm); |
| | | } |
| | | else if (jpushMessageInfo.messageType.Contains(PushMessageType.Prompt.ToString())) |
| | | { |
| | | //开门推送 |
| | | this.UpdateDoorLockState(PushMessageType.Prompt); |
| | | } |
| | | }); |
| | | |
| | | } |
| | | /// <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); |
| | | } |
| | | |
| | | } |
| | | } |
| | | |
| | | } |
| | | /// <summary> |
| | | /// 获取萤石视频【门锁】列表 |
| | | /// </summary> |
| | |
| | | #endif |
| | | return list; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 更新开锁图标和电池状态 |
| | | /// </summary> |
| | | public void UpdateDoorLockState(PushMessageType pushMessageType, string homeId, string spk, string stateContent) |
| | | { |
| | | if (spk != SPK.VideoDoorLock) |
| | | { |
| | | return; |
| | | } |
| | | this.MainThread(() => |
| | | { |
| | | 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> |
| | | public string GetVideoDoorLockIcon(Comerom comerom) |
| | | { |
| | | |
| | | if (comerom == Comerom.collect) |
| | | { |
| | | return "FunctionIcon/DoorLock/VideoDoorLockOpen.png"; |
| | | return "FunctionIcon/DoorLock/VideoDoorLockOpen1.png"; |
| | | } |
| | | else |
| | | { |
| | | return "FunctionIcon/DoorLock/VideoDoorlockClose.png"; |
| | | return "FunctionIcon/DoorLock/VideoDoorlockClose1.png"; |
| | | } |
| | | |
| | | } |
| | |
| | | new PublicAssmebly().TipMsgAutoClose(msg, false, time * 1000); |
| | | }); |
| | | } |
| | | |
| | | |
| | | #endregion |
| | | /// <summary> |
| | | /// 弹框类型 |
| | |
| | | collect,//收藏 |
| | | room,//房间 |
| | | push,//推送 |
| | | sanfan,//添加第三方设备 |
| | | } |
| | | |
| | | #if __IOS__ |
| | | IosIHdlInterface ezsdkDelegate; |
| | | /// <summary> |
| | | /// 专门定义给Ios回调用着,没有特殊含义 |
| | | /// 专门定义给Ios回调用,没有特殊含义 |
| | | /// </summary> |
| | | public class IosIHdlInterface : EZSDK.IOS.EZSDKDelegate |
| | | { |
| | |
| | | } |
| | | #else |
| | | /// <summary> |
| | | /// 专门定义给安卓回调用着,没有特殊含义 |
| | | /// 专门定义给安卓回调用,没有特殊含义 |
| | | /// </summary> |
| | | public class AndroidIHdlInterface : Java.Lang.Object, IHdlInterface |
| | | { |