鹤梦信息帮助中心
iOS相关问题

1. 用户账号管理


汇云 App SDK 支持手机号码、邮箱、三方平台等多种用户账号类型。


账号类型

手机账号支持密码登录。

邮箱账号支持密码登录。

三方平台登录支持常见的平台账号授权登录,比如微信、QQ、苹果、谷歌、Twitter。


功能说明

在该模块中,您将频繁地调用对象 ZJViewerUser。它是一个单例,存储了当前用户的所有信息及相关的登录注册方法。其数据模型如下表所示:

用户账户信息


用户公开信息



2. 设备管理


设备管理主要提供设备相关的操作,包含设备状态变化监听、设备重命名、设备固件升级、设备移除、设备网络设置等操作。


功能说明

设备管理相关类:



初始化设备

根据设备ID去初始化设备控制类,错误的设备 ID 可能会导致初始化失败,此时设备的实例返回 nil。


接口说明

/**

* 初始化对象

*

* @param deviceId 设备id

*/

- (instancetype)initWithDeviceId:(NSString *)deviceId;


示例代码

ZJViewerDevice *viwerDevice = [[ZJViewerDevice alloc] initWithDeviceId:did];

代理注册

ZJViewerSDK* viewer = [ZJViewerSDK defaultViewer];

viewer.deviceDelegate = self;

代理监听

实现 ZJViewerDeviceDelegate代理协议后,您可以在设备状态更变的回调中进行处理,刷新 App 设备控制面板的 UI。

示例代码

- (void)onDeviceCfgChange:(NSString *)deviceId DevCfgItem:(EN_ZJ_VIEWER_DEVCFG_ITEM)devCfgItem; {

// 设备配置信息更新,比如 设备名称修改、网络设置等

}

- (void)onDeviceStatusGroupId:(NSString *)groupId DeviceId:(NSString *)deviceId StateChange:(EN_ZJ_VIEWER_DEVICE_STATUS)state {

// 设备在线状态发生变化回调

}

初始化组

根据组ID去初始化组控制类,错误的组 ID 可能会导致初始化失败,此时组的实例返回 nil。组 ID 是通过ZJViewerGroupManager单例获取组列表遍历获取或者直接从ZJ_DeviceInfo模型下的groupId获取。


接口说明

/**

* 初始化对象

*

* @param groupId id

*/

- (instancetype)initWithGroupId:(NSString *)groupId;

示例代码

ZJViewerGroup *viewerGroup = [[ZJViewerGroup alloc] initWithGroupId:groupId];

查询设备信息

查询设备的配置信息,- (ZJ_DeviceInfo *)getDeviceInfo;

示例代码

ZJ_DeviceInfo *deviceInfo = [viwerDevice getDeviceInfo];

修改设备名称

/**

* 设置设备名称

*

* @param name 设备名称

*

* @return ZJTask *

*/

- (ZJTask *)setDeviceName:(NSString*)name

success:(ZJSuccessHandler)success

failure:(ZJFailureError)failure;

参数说明


示例代码

[viwerDevice setDeviceName:name success:^{

NSLog(@"updateName success");

} failure:^(NSError *error) {

NSLog(@"updateName failure: %@", error);

}];

移除设备

设备被移除后,会是无主状态,在设备同一局域网下,可以通过局域网搜索添加。

接口说明

/**

* 删除设备

*

* @param deviceId 设备Id

*

* @return 请求Id

*/

- (ZJTask *)removeDevice:(NSString*)deviceId

success:(ZJSuccessHandler)success

failure:(ZJFailureError)failure;

参数说明


示例代码

[viewerGroup removeDevice:did success:^{

NSLog(@"removeDevice success");

} failure:^(NSError *error) {

NSLog(@"removeDevice failure: %@", error);

}];

获取设备网络信息

查询设备当前配置的网络信息,回调返回ZJ_NetworkInfo模型

接口说明

/**

* 获取设备当前网络信息

*

* @return ZJTask *

*/

- (ZJTask *)getCurNetworkInfo:(ZJCurNetworkInfoSuccess)success

failure:(ZJFailureError)failure;

参数说明


示例代码

[viwerDevice getCurNetworkInfo:^(ZJ_NetworkInfo * _Nonnull networkInfo) {

NSLog(@"getCurNetworkInfo success");

} failure:^(NSError * _Nonnull errorCode) {

NSLog(@"getCurNetworkInfo failure: %@", error);

}];


3. 设备配网


汇云 App SDK 提供了把摄像机设备配置上路由器或网关的能力。以常见的 Wi-Fi直连配网为例,SDK 从云端获取配网 Token,再经由 App 来广播配网信息(路由 ID、密码、配网 Token)。智能设备接收到后,开始快速激活,同时连接到 App 和云端,开启设备上云的第一步。


配网方式

设备配网支撑的具体能力包括:

Wi-Fi设备配网:

Wi-Fi直连配网

AP热点配网

摄像头扫二维码配网

有线设备配网


名词解释

名词

说明

Wi-Fi设备

采用Wi-Fi 模组连接路由器,和   App 以及云端进行数据交互的智能设备。

Wi-Fi直连配网

APP通过直连AP热点,然后下发ssid和密码给设备进行配网。

AP热点配网

APP先连接设备AP热点,建立一个socket连接,然后APP给设备下发Wi-Fi数据进行配网。

摄像头扫二维码配网

摄像头设备通过扫描 App 上的二维码,来获取配网数据信息进行配网。

有线配网

通过有线网络连接路由器的设备。


 

功能说明

类名

说明

ZJAPActivator

提供Wi-Fi直连配网

ZJAPDirectActivator

提供AP热点配网

ZJQRActivator

提供摄像头扫二维码配网

 

iOS 14 版本适配

从 iOS 14 版本开始,在设备配网、局域网本地控制时会触发 本地网络 权限弹窗。

  • 如果用户点击了允许,App      才能够向本地局域网发送数据。

  • 如果用户点击了拒绝,将无法使用相关功能。

目前苹果没有提供任何 API 对此权限进行判断,建议您在相关功能无法正常使用时提示、引导用户检查 系统设置 中的 app设置,确认是否开启了 本地网络 权限。

iOS 13 版本适配

从 iOS 13 版本开始,如果用户没有开启地理位置权限,在已开启 Wi-Fi 权限的前提下,将获取不到有效的 Wi-Fi SSID 或 BSSID。请确认 App 是否添加地理位置权限并开启。


4. 视频管理


视频管理主要是通过ZJ_MediaRenderView类来实现视频的操作管理,包括实时视频、录像回放、视频下载等。

 

功能说明


 

播放器初始化

根据设备ID、放置播放器的视图、镜头校正模式去初始化设备控制类,错误的设备 ID可能会导致初始化失败,此时播放器的实例返回 nil。

 

接口说明

/**

 *  初始化一路视频流

 *

 *  @param deviceId                             设备ID

 *  @param targetView                       展示view

 *  @param mode             鱼眼镜头矫正模式

 *

 *  @return ZJ_MediaRenderView *

 */

- (id)initStreamWithDevice:(NSString*)deviceId

                TargetView:(UIView *)targetView

                    VRMode:(ZJ_VRMode)mode;

 

参数说明


 

示例代码

ZJ_MediaRenderView *renderView = [[ZJ_MediaRenderView alloc] initStreamWithDevice:deviceId TargetView:renderView VRMode: ZJ_VRModeNone];

 

打开实时视频

在初始化播放器完成以后,就可以通过启动流接口打开播放器来观看实时视频。

接口说明

/**

 *  启动实时视频流

 *

 *  @param streamIndex                      流的index

 *  @param streamChannelCreatedBlock        流通到创建成功回调

 *  @param firstVideoFrameShowBlock         第一帧视频显示回调

 *  @param playEndedBlock                   播放结束回调

 */

- (void)startRealTimeStreamOnStreamIndex:(int)streamIndex

                   StreamChannelCreated:(ZJ_RenderCompletionBlock)streamChannelCreatedBlock

                    FirstVideoFrameShow:(ZJ_RenderCompletionBlock)firstVideoFrameShowBlock

                              PlayEnded:(ZJ_RenderFinishedBlock)playEndedBlock;

 

参数说明


 

示例代码

[renderView startRealTimeStreamOnStreamIndex:streamIndex StreamChannelCreated:^{

         // 创建流通到成功

 } FirstVideoFrameShow:^{

         // 获取第一帧视频成功

 } PlayEnded:^(NSError * _Nonnull error) {

         // 播放结束/播放失败

 }];

 

打开录像视频

录像视频分为本地录像视频和云端录像视频。

 

接口说明

/**

 *  启动设备端录像视频流

 *

 *  @param startTime                        录像的开始时间点  yyyy-MM-dd HH:mm:ss

 *  @param streamChannelCreatedBlock        流通到创建成功回调

 *  @param firstVideoFrameShowBlock         第一帧视频显示回调

 *  @param playEndedBlock                   播放结束回调

 *  @param timeStampChangedBlock            播放录像时时间戳变化回调

 */

-(void)startRecordStreamOnStartTime:(NSString *)startTime

               StreamChannelCreated:(ZJ_RenderCompletionBlock)streamChannelCreatedBlock

                FirstVideoFrameShow:(ZJ_RenderCompletionBlock)firstVideoFrameShowBlock

                          PlayEnded:(ZJ_RenderFinishedBlock)playEndedBlock

                   TimeStampChanged:(ZJ_RenderTimeStampChangedBlock)timeStampChangedBlock;

 

参数说明


 

示例代码

[renderView startRecordStreamOnStartTime:(NSString *)startTime

               StreamChannelCreated::streamIndex StreamChannelCreated:^{

         // 创建流通到成功

 } FirstVideoFrameShow:^{

         // 获取第一帧视频成功

 } PlayEnded:^(NSError * _Nonnull error) {

         // 播放结束/播放失败

 }];

 

接口说明

/**

 *  启动云端录像视频流

 *

 *  @param startTime                        录像的开始时间点  yyyy-MM-dd

 *  @param streamChannelCreatedBlock        流通到创建成功回调

 *  @param firstVideoFrameShowBlock         第一帧视频显示回调

 *  @param playEndedBlock                   播放结束回调

 *  @param timeStampChangedBlock            播放录像时时间戳变化回调

 */

-(void)startCloudStreamOnStartTime:(NSString *)startTime

               StreamChannelCreated:(ZJ_RenderCompletionBlock)streamChannelCreatedBlock

                FirstVideoFrameShow:(ZJ_RenderCompletionBlock)firstVideoFrameShowBlock

                          PlayEnded:(ZJ_RenderFinishedBlock)playEndedBlock

                   TimeStampChanged:(ZJ_RenderTimeStampChangedBlock)timeStampChangedBlock;

 

参数说明


 

示例代码

[renderView startCloudStreamOnStartTime:(NSString *)startTime

               StreamChannelCreated::streamIndex StreamChannelCreated:^{

         // 创建流通到成功

 } FirstVideoFrameShow:^{

         // 获取第一帧视频成功

 } PlayEnded:^(NSError * _Nonnull error) {

         // 播放结束/播放失败

 }];

 

切换视频流

在观看实时视频的时候进行视频分辨率的切换(0 超清  1 高清)。

 

接口说明

/**

 *  切换流

 *

 *  @param deviceId                             设备ID

 *  @param streamIndex                      流的id(0 超清  1 高清)

 *  @param streamChannelCreatedBlock        流通到创建成功回调

 *  @param firstVideoFrameShowBlock         第一帧视频显示回调

 *  @param playEndedBlock                   播放结束回调

 */

- (void)switchStreamWithDevice:(NSString*)deviceId

                   StreamIndex:(int)streamIndex

        OnStreamChannelCreated:(ZJ_RenderCompletionBlock)streamChannelCreatedBlock

           FirstVideoFrameShow:(ZJ_RenderCompletionBlock)firstVideoFrameShowBlock

                     PlayEnded:(ZJ_RenderFinishedBlock)playEndedBlock;

 

参数说明


 

示例代码

[renderView switchStreamWithDevice:_deviceId StreamIndex:streamId OnStreamChannelCreated:^{

       // 流通道创建成功

} FirstVideoFrameShow:^{

       // 获取第一帧视频成功

 } PlayEnded:^(NSError * _Nonnull error) {

       // 播放结束/播放失败

 }];

 

停止视频播放

对视频流进行关闭操作,停止视频播放。

 

接口说明

/**

 *  停止视频播放

 */

- (void)stopStream;

 

示例代码

[renderView stopStream];


5. 快速集成


本主题介绍如何手动将汇云 iOS App SDK快速集成到您的项目中。汇云SDK 要求 iOS 版本不低于 9.0。

 

集成SDK

创建新工程,将ZJ_Viewer.framework拖入项目工程中,并确保在General->frameworks,Libraries,and Embedded Content下添加库,设置APP权限(相机、相册、麦克风、定位)

 

初始化SDK

打开AppDelegate.m文件,在[AppDelegate application:didFinishLaunchingWithOptions:]方法中初始化SDK并启动SDK:

 

初始化调用接口

接口1:默认正式环境

/**

 *  初始化 SDK 工作环境

 *

 *  @param configPath    SDK 工作配置路径

 *  @param cachePath     SDK 缓存路径

 *  @param companyID     企业ID

 *  @param appID         AppID

 *

 *  @return 0 代表成功,非0代表失败

 */

- (NSInteger)initViewerWithConfigPath:(NSString*)configPath CachePath:(NSString*)cachePath CompanyID:(NSString*)companyID AppID:(NSString*)appID;

 

接口2:可切换SDK环境

/**

 *  初始化 SDK 工作环境

 *

 *  @param configPath    SDK 工作配置路径

 *  @param cachePath     SDK 缓存路径

 *  @param companyID     企业ID

 *  @param appID         AppID

 *  @param environment   设置SDK 服务器环境类型

 *

 *  @return 0 代表成功,非0代表失败

*/

- (NSInteger)initViewerWithConfigPath:(NSString *)configPath CachePath:(NSString *)cachePath CompanyID:(NSString *)companyID AppID:(NSString *)appID environment:(EN_ZJ_VIEWER_ENVIRONMENT)environment;

 

注意事项】

configPath:SDK工作配置路径

cachePath:SDK 缓存路径

companyID和appID在智周云管理后台注册申请:http://console.smartcloudcon.com/login/login.htm

environment :服务器环境切换

 

实例代码:

[[ZJViewerSDK defaultViewer] initViewerWithConfigPath:[HYPCommonUtility getSDKWorkPath] CachePath:[HYPCommonUtility getSDKCachePath] CompanyID:KCompanyID AppID:KAppID environment:envi];

 

 

打开Debug模式

在开发的过程中可以开启 Debug 模式,打印一些日志用于分析问题。

#if defined(DEBUG)

    [[ZJViewerSDK defaultViewer] setLogEnabled:YES];

#endif

 

启动SDK

调用接口

/**

 *  SDK启动

 *

 *  @return 0 代表成功,非0代表失败

 */

- (NSInteger)start;

 

实例代码:

[[ZJViewerSDK defaultViewer] start];

 

 

控制台日志获取

/**

 *  打印log

 *

 *  @param logLevel  日志级别

 *  @param format    日志格式化字符串

 */

- (void)logWithLogLevel:(EN_ZJ_LOG_LEVEL)logLevel LogFormat:(NSString *)format, ...;


6. 集成Push


基于 汇云 SDK 开发的 App,汇云 平台支持 Push 功能,支持给用户发送运营 Push 和产品的告警 Push。

 

Xcode配置

点击 Xcode 项目 - TARGETS - Signing & Capabilities, 添加 Push Notifications 选项。

 

设置推送

除了在AppDelegate实现原生推送的相关操作外,还要在didRegisterForRemoteNotificationsWithDeviceToken方法中调用汇云 APP SDK的设置推送接口。

 

推送相关的类


类名

   

说明

   

ZJViewerUser

   

用户管理的类,通过单例管理

    

接口说明

/**

 *  设置推送,例如客户端接收网络摄像机的报警推送

 *

 *  @param token            推送token

 *  @param pushPlatForm     推送平台

 *  @param language         语言

 *

 *  @return ZJTask *

 */

- (ZJTask *)setPushToken:(NSString*)token

             PushPlatForm:(ZJ_VIEWER_PUSH_PLATFORM)pushPlatForm

             Language:(EN_ZJ_VIEWER_LANGUAGE)language

             success:(ZJSuccessHandler)success

             failure:(ZJFailureError)failure;

 

参数说明


参数

   

说明

   

token

   

AppDelegate中的代理回调的token

   

pushPlatForm

   

推送平台(2 是iOS的)

  

language

   

推送语言类型

   

success

   

成功回调

   

failure

   

失败回调

    

示例代码

ZJViewerUser * viwerUser = [ZJViewerUser defaultUser];

[viwerUser setPushToken:token PushPlatForm:ZJ_VIEWER_PUSH_PLATFORM_IOS Language:[HYPCommonUtility getLanuageCode] success:^{

        // 设置推送成功

} failure:^(NSError * _Nonnull errorCode) {

        // 设置推送失败

}];


7. 错误码


宏定义

错误码

描述

EN_ZJ_VIEWER_ERROR

-1


EN_ZJ_VIEWER_ERR_PARAM

-2


EN_ZJ_VIEWER_ERR_NOMEM

-3


EN_ZJ_VIEWER_ERR_NOINIT

-4


EN_ZJ_VIEWER_ERR_NORES

-5


EN_ZJ_VIEWER_ERR_OVERFLOW

-6


EN_ZJ_VIEWER_ERR_MAGIC_N

-7


EN_ZJ_VIEWER_ERR_KEY_UNEXIST

-8


EN_ZJ_VIEWER_ERR_FILE_EXIST

-9


EN_ZJ_VIEWER_ERR_AUTHORITY

-10


EN_ZJ_VIEWER_ERR_CLOSE

-11


EN_ZJ_VIEWER_ERR_SUPPORT

-12


EN_ZJ_VIEWER_ERR_NOADDR

-13


EN_ZJ_VIEWER_ERR_FREQUENTLY

-14


EN_ZJ_VIEWER_ERR_TRYAGAIN

-15


EN_ZJ_VIEWER_ERR_FULL

-16


EN_ZJ_VIEWER_ERR_NET

-80


EN_ZJ_VIEWER_ERR_TIMEOUT

-83


EN_ZJ_VIEWER_DES_CHANGE

-100


EN_ZJ_VIEWER_ERR_FILEEND

-101


EN_ZJ_VIEWER_ERR_FILEWAIT

-102


EN_ZJ_VIEWER_ERR_EXIST

-110

已存在

EN_ZJ_VIEWER_SUCESS

0

请求成功

EN_ZJ_VIEWER_ERR_SDK_CHARACTER

1001

配置WiFi时,传入SSID有无效字符

EN_ZJ_VIEWER_ERR_SDK_NO_WIFI_MODULE

1002

查询WiFi列表,设备没有WiFi模块

EN_ZJ_VIEWER_ERR_SDK_WIFI_ISCLOSE

1003

查询WiFi列表,WiFi模块关闭

EN_ZJ_VIEWER_ERR_SVR_SIGN_NO_SVR_DISTRI

1101

SIGN分配服务时,没有可分配服务

EN_ZJ_VIEWER_ERR_SVR_FREQUENT_OPERATION

1103

访问频繁

EN_ZJ_VIEWER_ERR_SVR_COMPANYID_INVALID

1111

鉴权的企业ID不存在

EN_ZJ_VIEWER_ERR_SVR_COMPANY_NO_PRIVILEGE

1112

鉴权的企业ID对应的企业被平台禁用

EN_ZJ_VIEWER_ERR_SVR_APPID_INVALID

1113

鉴权传入的AppID在企业下不存在

EN_ZJ_VIEWER_ERR_SVR_APPID_NO_PRIVILEGE

1114

鉴权传入的AppID被企业/平台禁用

EN_ZJ_VIEWER_ERR_SVR_LICENSENOTEXIST

1115

传入授权的CTEI码没有找到

EN_ZJ_VIEWER_ERR_SVR_LICENSEEXPIRE

1116

传入授权的CTEI码已经过期

EN_ZJ_VIEWER_ERR_SVR_LICENSEDISABLE

1117

授权用的CTEI码被平台禁用

EN_ZJ_VIEWER_ERR_SVR_APPHAVENOLICENSECOUNT

1118

按量授权的AppID下无可用的授权数量

EN_ZJ_VIEWER_ERR_SVR_DEVICENOTHERE

1121

设备登陆传入的设备ID无效,设备收到该错误码,重新注册新的ID

EN_ZJ_VIEWER_ERR_SVR_DEVICEDISABLE

1122

该设备被平台禁用,设备无法上云

EN_ZJ_VIEWER_ERR_SVR_DEVICE_VERSION_DISABLE

1123

设备版本太旧,系统不再兼容。设备此时需要进行升级

EN_ZJ_VIEWER_ERR_SVR_DEVICESVR_CALL_FAILED

1131

设备配置管理系统访问报错

EN_ZJ_VIEWER_ERR_SDK_DEVICE_NO_BUSI_CONFIG

1141

设备尚未上传业务配置

EN_ZJ_VIEWER_ERR_SDK_RESOLUTION_ABILITY_NOT_SUPPORT

1142

设置的设备分辨率,当前设备不支持

EN_ZJ_VIEWER_ERR_SDK_RESOLUTION_BUSI_NOT_SUPPORT

1143

设置的设备分辨率,可能因业务限制不支持(授权限制)

EN_ZJ_VIEWER_ERR_SDK_PTZ_ISMAX

1144

设备执行PTZ已经转到最大值

EN_ZJ_VIEWER_ERR_SDK_EXITGROUP_ERR

1146

设备要出的组,不是设备当前的组,出组失败

EN_ZJ_VIEWER_ERR_SDK_SDCARD_FORMATTING_ERR

1148

设备格式化SD失败

EN_ZJ_VIEWER_ERR_SDK_SDCARD_NOT_EXIST

1149

格式化SD卡时,SD卡不存在

EN_ZJ_VIEWER_ERR_SDK_SDCARD_WR_ERR

1150

读写SD卡时,操作失败

EN_ZJ_VIEWER_ERR_SDK_ADD_CHILD_DEVICE_TIMEOUT

1151

添加HUB子设备时,通信超时,失败

EN_ZJ_VIEWER_ERR_SDK_CHILD_DEVICE_EXIST

1152

添加HUB子设备时,设备ID重复

EN_ZJ_VIEWER_ERR_SDK_HUB_OPT_ERR

1153

HUB发生异常,操作失败

EN_ZJ_VIEWER_ERR_SDK_QUERY_RECORD_NO_PRIVILEGE

1154

当前查询记录没有操作权限

EN_ZJ_VIEWER_ERR_SVR_CLOUDSVR_CALL_FAILED

1155

无法访问当前云存记录服务

EN_ZJ_VIEWER_ERR_SDK_LOCAL_RECORD_NOT_EXIST

1156

当前查询详情的本地记录文件已被清理

EN_ZJ_VIEWER_ERR_SDK_CLOUD_FILE_EXPIRE

1157

当前查询的云记录文件已经过期

EN_ZJ_VIEWER_ERR_BINDCODE_EXIST

1158

绑定码已存在

EN_ZJ_VIEWER_ERR_BINDCODE_NOT_EXIST

1159

绑定码不存在

EN_ZJ_VIEWER_ERR_BINDCODE_EXPIRE

1160

绑定码已过期

EN_ZJ_VIEWER_ERR_BINDCODE_USED

1161

绑定码已使用

EN_ZJ_VIEWER_ERR_SVR_ACCOUNT_ISEXIST

2001

账号已存在

EN_ZJ_VIEWER_ERR_SVR_REG_OTHER_ERR

2003

其他注册失败原因

EN_ZJ_VIEWER_ERR_SVR_ACCOUNT_NOTEIXST

2004

账号不存在

EN_ZJ_VIEWER_ERR_SVR_USER_ACCOUNT_PWD_ERR

2005

User登录账号密码错误

EN_ZJ_VIEWER_ERR_SVR_VERIFY_OPENID_ERR

2006

第三方登陆时,第三方校验失败

EN_ZJ_VIEWER_ERR_SVR_ACCOUNT_FORBIDDEN

2007

登陆时,发现账户已经被禁用

EN_ZJ_VIEWER_ERR_SVR_UTOKEN_NOTEXIST

2008

UTOKEN不存在

EN_ZJ_VIEWER_ERR_SVR_SMSCODE_FREQUENT

2009

两次获取短信验证码时间过短,返回失败

EN_ZJ_VIEWER_ERR_SVR_USER_REJECT_INVITE

2010

给用户发送分享邀请,被邀请者拒绝

EN_ZJ_VIEWER_ERR_SVR_GTOKENNOTMATCH

2011

通过Gtoken入组,Gtoken失效

EN_ZJ_VIEWER_ERR_SVR_DEVICEISINGROUP

2012

添加设备进组时失败,设备已经加入了另一个组

EN_ZJ_VIEWER_ERR_SVR_USERNOPRIVILEGE

2013

用户无操作权限

EN_ZJ_VIEWER_ERR_SVR_ACCOUNT_TYPE_NOT_SUPPORT

2014

获取短信验证码时,不支持手机邮箱以外的方式获取

EN_ZJ_VIEWER_ERR_SVR_ACCOUNT_FORMAT_ERR

2015

账号格式错误

EN_ZJ_VIEWER_ERR_SVR_ACCOUNT_ALREADY_BIND

2016

账号已被绑定

EN_ZJ_VIEWER_ERR_SVR_ACCOUNT_BIND_ERR

2017

绑定账号错误

EN_ZJ_VIEWER_ERR_SVR_FILEID_NOT_EXIST

2018

云存储文件ID不存在

EN_ZJ_VIEWER_ERR_SVR_4GCARDNO_NOT_EXIST

2020

4G卡号不存在

EN_ZJ_VIEWER_ERR_SVR_4GCARDNO_REPORT_ERR

2021

4G卡号汇报失败

EN_ZJ_VIEWER_ERR_SVR_APPID_NOTFOUND_TEMPLATE

2027

APPID未找到对应的短信/ems模板

EN_ZJ_VIEWER_ERR_SVR_SMS_SEND_FREQUENCY_LIMIT

2033

单个手机号码在规定时间内短信发送达到上限

ERR_ZJ_VIEWER_ERR_ERR_ERR_SVR_TEMPAUTH_SHARE_ERR

2201

分享失败

ERR_ZJ_VIEWER_ERR_ERR_SVR_TEMPAUTH_QRCODE_INVALID

2202

无效的二维码

ERR_ZJ_VIEWER_ERR_SVR_TEMPAUTH_REMOVE_ERR

2203

设备出组失败

EN_ZJ_VIEWER_ERR_SVR_VERIFICATION_CODE_NOTEXIST

2207

验证码不存在

EN_ZJ_VIEWER_ERR_SVR_DEVICE_P2P_NOT_SUPPORT

3001

当用户向设备请求P2P时,设备返回不支持P2P

EN_ZJ_VIEWER_ERR_SVR_CONN_NOT_MATCH

3002

用户与设备的P2P连接校验不匹配

EN_ZJ_VIEWER_ERR_SVR_MEDIA_MATCH_TIMEOUT

3003

用户和设备在MEDIA上配对超时

EN_ZJ_VIEWER_ERR_SVR_MEDIA_CHANNEL_NOTEXIST

3004

媒体操作时,对应的ChannelID不存在

EN_ZJ_VIEWER_ERR_SVR_MEDIA_PLAY_UPPER_LIMIT

3005

点播流媒体时,人数超上限

EN_ZJ_VIEWER_ERR_SVR_MEDIA_INVALID

3006

流媒体服务时,资源过期或无效

EN_ZJ_VIEWER_ERR_SVR_MALLOC_ERR

4001

服务申请内存对象错误

EN_ZJ_VIEWER_ERR_SVR_JSON_DECODE_ERR

4002

服务解析JSON协议错误

EN_ZJ_VIEWER_ERR_SVR_JSON_ENCODE_ERR

4003

服务构造JSON字符串错误

EN_ZJ_VIEWER_ERR_SVR_API_PARAM_ERR

4004

API调用参数错误

EN_ZJ_VIEWER_ERR_SVR_METHOD_ERR

4005

API返回NIL

EN_ZJ_VIEWER_ERR_SVR_ENCRYPT_ERR

4006

协议加密错误

EN_ZJ_VIEWER_ERR_SVR_DECRYPT_ERR

4007

协议解密错误

EN_ZJ_VIEWER_ERR_SVR_BUFREAD_ERR

4008

链接读取BUFFER错误

EN_ZJ_VIEWER_ERR_SVR_TLS_PEMKEY_ERR

4009

TLS链接找不到PEM KEY文件错误

EN_ZJ_VIEWER_ERR_SVR_AUTHATOKEN_ERR

4010

服务器之间访问调用 ATOKEN出错

EN_ZJ_VIEWER_ERR_SVR_REDIS_PUB_ERR

4011

Redis服务访问错误

EN_ZJ_VIEWER_ERR_SVR_DB_CONNECT_ERR

4012

数据库连接失败

EN_ZJ_VIEWER_ERR_SVR_DB_INSERT_ERR

4013

数据库数据插入失败

EN_ZJ_VIEWER_ERR_SVR_DB_SELECT_ERR

4014

数据库数据查询失败

EN_ZJ_VIEWER_ERR_SVR_DB_UPDATE_ERR

4015

数据库数据更新失败

EN_ZJ_VIEWER_ERR_SVR_DB_DELETE_ERR

4016

数据库数据删除失败

EN_ZJ_VIEWER_ERR_SVR_DB_NORECORD_ERR

4017

没有找到相关记录

EN_ZJ_VIEWER_ERR_SVR_DB_DUPLICATE_KEY

4018

主键重复

EN_ZJ_VIEWER_ERR_SVR_NET_LISTEN_ERR

4019

服务端口侦听错误

EN_ZJ_VIEWER_ERR_SVR_CLOSED

4020

服务关闭错误

EN_ZJ_VIEWER_ERR_SVR_IDSVR_NOT_FOUND

4021

IDSVR服务找不到

EN_ZJ_VIEWER_ERR_SVR_IDSTUNSVR_NOT_FOUND

4022

IDSTUN服务找不到

EN_ZJ_VIEWER_ERR_SVR_BUSISVR_NOT_FOUND

4023

BUSICENTRE服务找不到

EN_ZJ_VIEWER_ERR_SVR_MEDIASVR_NOT_FOUND

4024

媒体服务找不到

EN_ZJ_VIEWER_ERR_SVR_LINKSVR_NOT_FOUND

4025

LINK服务找不到

EN_ZJ_VIEWER_ERR_SVR_USERSVR_CALL_FAILED

4026

用户系统接口调用失败

EN_ZJ_VIEWER_ERR_SVR_IDSVR_CALL_FAILED

4027

IDSVR系统接口调用失败

EN_ZJ_VIEWER_ERR_SVR_IDSTUN_CALL_FAILED

4028

IDSTUN系统接口调用失败

EN_ZJ_VIEWER_ERR_SVR_PUSHSVR_NOT_FOUND

4029

推送服务找不到

EN_ZJ_VIEWER_ERR_SVR_GATEWAYSVR_CALL_FAILED

4030

网关服务调用失败

EN_ZJ_VIEWER_ERR_SVR_COMPMNGSVR_CALL_FAILED

4031

企业后台服务调用失败

EN_ZJ_VIEWER_ERR_SVR_PUBSUBSVR_NOT_FOUND

4032

订阅发布服务找不到

EN_ZJ_VIEWER_ERR_SVR_SYSNOTICESVR_NOT_FOUND

4033

sysnotice找不到

EN_ZJ_VIEWER_ERR_SVR_GATEWAYSVR_NOT_FOUND

4034

网关服务找不到

EN_ZJ_VIEWER_ERR_SVR_HTTPSVR_NOT_FOUND

4035

http服务找不到

EN_ZJ_VIEWER_ERR_SVR_HTTPSVR_CALL_FAILED

4036

http服务调用失败

EN_ZJ_VIEWER_ERR_SVR_BUSISVR_CALL_FAILED

4037

busicentre调用失败

EN_ZJ_VIEWER_ERR_SVR_ID_CALL_FAILED

4038

IDSVR调用失败

EN_ZJ_VIEWER_ERR_SVR_SIGN_CALL_FAILED

4039

SIGN服务调用失败

EN_ZJ_VIEWER_ERR_SVR_LINK_CALL_FAILED

4040

Link服务调用失败

EN_ZJ_VIEWER_ERR_SVR_LOGSVR_CALL_FAILED

4041

LOG系统调用失败

EN_ZJ_VIEWER_ERR_SVR_USERSVR_NOT_FOUND

4042

用户系统找不到

EN_ZJ_VIEWER_ERR_SVR_SYSNOTICESVR_CALL_FAILED

4043

sysnotice找不到调用失败

EN_ZJ_VIEWER_ERR_SVR_PUBSUBSVR_CALL_FAILED

4044

订阅发布服务调用失败

EN_ZJ_VIEWER_ERR_SVR_DYNAMICMETHOD_CALL_FAILED

4045

notice动态调用其他服务失败

EN_ZJ_VIEWER_ERR_SVR_PLAYLOAD_IS_FULL

4046

负载为空

EN_ZJ_VIEWER_ERR_SVR_GRPCSVR_CALL_FAILED

4047

GRPC调用失败

EN_ZJ_VIEWER_ERR_SVR_DEVICESVR_NOT_FOUND

4048

设备系统位找不到

EN_ZJ_VIEWER_ERR_SVR_EVENTSVR_NOT_FOUND

4049

事件系统找不到

EN_ZJ_VIEWER_ERR_SVR_ZONE_NOT_FOUND

4050

ZONE服务找不到

EN_ZJ_VIEWER_ERR_SVR_NET_WRITE_BLOCK

4051

网络通道写入包失败

EN_ZJ_VIEWER_ERR_SVR_SOCKET_CLOSED

4052

SOCKET连接已关闭

EN_ZJ_VIEWER_ERR_SVR_SOCKET_READERR

4053

SOCKET连接读取包失败

EN_ZJ_VIEWER_ERR_SVR_ID_PARSEERR

4054

ID参数解析失败(格式不争取)

EN_ZJ_VIEWER_ERR_SVR_NET_DNSPARSE_ERR

4055


EN_ZJ_VIEWER_ERR_SVR_NET_REQ_TIMEOUT

4056

网络请求超时

EN_ZJ_VIEWER_ERR_SVR_SUBPUB_TOKEN_NOTEXIST

4057


EN_ZJ_VIEWER_ERR_SVR_SOCKET_ACCEPT_ERROR

4058


EN_ZJ_VIEWER_ERR_SVR_OPERATION_TOO_FREQUENT

4059


EN_ZJ_VIEWER_ERR_SVR_PARSE_IP_ERR

4060


EN_ZJ_VIEWER_ERR_SVR_GETSVRPUBKEY_ERR

4061

获取pubkey

EN_ZJ_VIEWER_ERR_SVR_LINKNOTICESVR_NOT_FOUND

4062

LINKNOTICE找不到

EN_ZJ_VIEWER_ERR_SVR_ENCRYPTTYPE_ERROR

4064

加密类型错误

EN_ZJ_VIEWER_ERR_SVR_VIDEOSVR_NOT_FOUND

4065

视频存储服务找不到

EN_ZJ_VIEWER_ERR_SVR_EXCEPTIONSVR_NOT_FOUND

4066

EXCEPTION服务找不到

EN_ZJ_VIEWER_ERR_SVR_LOGSVR_NOT_FOUND

4067

LOGSVR找不到

EN_ZJ_VIEWER_ERR_SVR_OPRECORDSVR_NOT_FOUND

4068

OPRECORD服务找不到

EN_ZJ_VIEWER_ERR_SVR_NATSTUNSVR_NOT_FOUND

4069

NATSTUN服务找不到

EN_ZJ_VIEWER_ERR_SVR_COMBO_CALL_FAILED

4070

套餐服务调用失败

EN_ZJ_VIEWER_ERR_SVR_COMBO_NOT_FOUND

4071

套餐服务找不到

EN_ZJ_VIEWER_ERR_SVR_BINDSVR_NOT_FOUND

4073

绑定服务找不到

EN_ZJ_VIEWER_ERR_SVR_PICTURESVR_NOT_FOUND

4074

图片系统找不到

EN_ZJ_VIEWER_ERR_SVR_CLOUDSUBPUB_NOT_FOUND

4075

消息订阅系统找不到

EN_ZJ_VIEWER_ERR_SVR_LINKNOTICESVR_CALL_FAILED

4076

LinkNotice服务调用失败

EN_ZJ_VIEWER_ERR_SVR_NOTICESVR_NOT_FOUND

4077

Notice未找到

EN_ZJ_VIEWER_ERR_SVR_NOTICESVR_CALL_FAILED

4078

Notice服务调用失败

EN_ZJ_VIEWER_ERR_SVR_CLOUDSUBPUB_CALL_FAILED

4079

消息订阅系统服务调用失败

EN_ZJ_VIEWER_ERR_SVR_MOBCOMMSVR_NOT_FOUND

4080

移动通信(Java向运营商查询套餐信息的服务)服务未找到

EN_ZJ_VIEWER_ERR_SVR_MOBCOMMSVR_CALL_FAILED

4081

移动通信(Java向运营商查询套餐信息的服务)服务调用失败

EN_ZJ_VIEWER_ERR_SVR_ZONESVR_CALL_FAILED

4082

Zone服务调用失败

EN_ZJ_VIEWER_ERR_SVR_BINDSVR_CALL_FAILED

4083

Bind服务调用失败

EN_ZJ_VIEWER_ERR_SVR_EVENTSVR_CALL_FAILED

4084

事件服务调用失败

EN_ZJ_VIEWER_ERR_SVR_PICTURESVR_CALL_FAILED

4085

图片服务调用失败

EN_ZJ_VIEWER_ERR_SVR_VIDEOSVR_CALL_FAILED

4086

视频服务调用失败

EN_ZJ_VIEWER_ERR_SVR_OPRECORDSVR_CALL_FAILED

4087

操作记录服务调用失败

EN_ZJ_VIEWER_ERR_SVR_MEDIASVR_CALL_FAILED

4088

媒体服务调用失败

EN_ZJ_VIEWER_ERR_SVR_FACEMANAGER_NOT_FOUND

4089

人脸管理系统未找到

EN_ZJ_VIEWER_ERR_SVR_FACEMANAGER_CALL_FAILED

4090

人脸系统服务调用失败

EN_ZJ_VIEWER_ERR_SVR_GROUPNOTHERE

4407

组不存在

EN_ZJ_VIEWER_ERR_SVR_DEVICENOTINGROUP

4409

Device不在组里

EN_ZJ_VIEWER_ERR_SVR_WAKEUP_DEVICEERR

4422

唤醒出错

EN_ZJ_VIEWER_ERR_SVR_DEVICEOFFLINE

4602

Device不在线

EN_ZJ_VIEWER_ERR_SVR_DEVICE_ISSLEEP

4610

设备已休眠

EN_ZJ_VIEWER_ERR_SVR_HAVENOGROUPS

4612

没有组列表

EN_ZJ_VIEWER_ERR_SVR_REG_AUTH_ERR

5001

SIGN服务注册   SVRID&SVRPWD校验错误

EN_ZJ_VIEWER_ERR_SVR_SIGN_ATOKEN_NOT_EXIST

5002

SIGN服务通过SVR   ATOKEN找不到服务

EN_ZJ_VIEWER_ERR_SVR_SIGN_MANAGE_NOMETHOD

5004


EN_ZJ_VIEWER_ERR_SVR_GENERALUTOKEN_ERR

5005

USI生成UTOKEN错误

EN_ZJ_VIEWER_ERR_SVR_USERNOTHERE

5007


EN_ZJ_VIEWER_ERR_SVR_USERISINGROUP

5011

用户已经入组

EN_ZJ_VIEWER_ERR_SVR_ROLENOTEXIST

5013


EN_ZJ_VIEWER_ERR_SVR_CHILDGROUPNOTEXIST

5014


EN_ZJ_VIEWER_ERR_SVR_ROLEISINUSE

5015


EN_ZJ_VIEWER_ERR_SVR_GROUPISINGROUP

5016


EN_ZJ_VIEWER_ERR_SVR_USERNOTINGROUP

5017


EN_ZJ_VIEWER_ERR_SVR_GROUPNOTINGROUP

5019


EN_ZJ_VIEWER_ERR_SVR_DEVICEISSLEEP

5021


EN_ZJ_VIEWER_ERR_SVR_ID_MAXIDINDEX_GETERR

5024


EN_ZJ_VIEWER_ERR_SVR_APPNOTEXIST

5026


EN_ZJ_VIEWER_ERR_SVR_APPDISABLE

5027


EN_ZJ_VIEWER_ERR_SVR_APPAUTHTYPE_ERR

5031


EN_ZJ_VIEWER_ERR_SVR_APPISEXIST

5032


EN_ZJ_VIEWER_ERR_SVR_ACCOUNTTYPENOTBIND

5034


EN_ZJ_VIEWER_ERR_SVR_APPAUTHTYPENOTSUPPORT

5036


EN_ZJ_VIEWER_ERR_SVR_DEVICE_NOT_AUTH

5038


EN_ZJ_VIEWER_ERR_SVR_UTOKEN_NOT_AUTH

5039


EN_ZJ_VIEWER_ERR_SVR_DEVICE_FORBIDDEN

5040


EN_ZJ_VIEWER_ERR_SVR_UTOKEN_FORBIDDEN

5041


EN_ZJ_VIEWER_ERR_SVR_UTOKEN_CHECKERR

5042


EN_ZJ_VIEWER_ERR_SVR_SYSCOMMAND_FAIL

5043


EN_ZJ_VIEWER_ERR_SVR_PUSHTEMPLATENOTEXIST

5044


EN_ZJ_VIEWER_ERR_SVR_DEVICE_LIMIT_AUTH

5045


EN_ZJ_VIEWER_ERR_SVR_SIGN_SVRKEY_NOTEXIST

5046


EN_ZJ_VIEWER_ERR_SVR_SVRPUBKEY_NOTEXIST

5047


EN_ZJ_VIEWER_ERR_SVR_FILETYPE_NOTEXIST

5048


EN_ZJ_VIEWER_ERR_SVR_SUBPUB_SUBJ_NOT_EXIST

8000


EN_ZJ_VIEWER_ERR_SVR_SUBPUB_ID_TYPE_NOT_SUPPORT

8001


EN_ZJ_VIEWER_ERR_SVR_NOTICE_QUEUE_WRITE_ERR

8002

NOTICE服务写入队列失败

EN_ZJ_VIEWER_ERR_SVR_NOTICE_PROTO_NOT_SUPPORT

8003

NOTICE通知协议不支持

EN_ZJ_VIEWER_ERR_SVR_LANGUAGE_NOT_EXIST

8004

语言不存在

EN_ZJ_VIEWER_ERR_SVR_SUBPUB_PUBLISH_MSG_ERR

8005

订阅发布服务Publish失败

EN_ZJ_VIEWER_ERR_SVR_NOTICE_JUMP_NOTIE_SUPPORT

8006

NOTICE跨机房调用不支持

EN_ZJ_VIEWER_ERR_SVR_SIGNAL_NOT_SUPPORT

9001

所发送的指令,对方不支持该指令集;(版本/型号错误导致)

EN_ZJ_VIEWER_ERR_SVR_SERVICE_TIMEOUT

9002

指令发送后,超过超时时间仍没有回应

EN_ZJ_VIEWER_SVR_SIGNAL_ALREADY_CACHE

9003

通过服务端转发信令,设备支持信令缓存,设备在线,则回应

EN_ZJ_VIEWER_ERR_SVR_SIGNAL_DISCARD

9004

通过服务端转发信令,不支持信令缓存,设备不在线,则回应

EN_ZJ_VIEWER_ERR_SVR_CMD_NOT_SUPPORT

9010

版本较旧,或设备类型不符合不支持当前指令

EN_ZJ_VIEWER_ERR_SVR_DEVICE_REG_FORBIDDEN

9030

设备注册无权限,或服务限制,设备不再重试

EN_ZJ_VIEWER_ERR_SVR_DEVICE_LOGIN_FORBIDDEN

9031

设备登陆被禁用,设备不再重试


8. 更新日志


本文提供 iOS 版汇云 App SDK 的变更日志和发布说明。SDK 会持续更新,并且汇云对每个版本 SDK 均保留使用权利(© 2017 - 2021 HuiYun Inc. All Rights Reserved)



请加我的企业微信
鹤梦信息客服