依托云优势快速接入你的产品

依托云优势,接入你的智能产品

开发分类
APP开发SDK > iOS 下载
iOS开发文档


汇云iOS开发文档



1. 用户账号管理


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

 

账号类型

手机账号支持密码登录。

邮箱账号支持密码登录。

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

 

功能说明

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

用户账户信息

字段

类型

说明

userId

NSString

用户注册账号以后生成的用户id

phoneNumber

NSString

用户用手机注册以后使用的手机号

Email

NSString

用户用邮箱注册以后使用的邮箱号

thirdType

Int

三方平台登录类型

thirdId

NSString

三方平台登录以后产生的id

thirdToken;

NSString

三方平台登录以后产生的token


用户公开信息:

字段

类型

说明

isMarried

BooL

是否已婚

sex

Int

性别

phoneNumber

NSString

手机号

email

NSString

邮箱

address

NSString

地址

birthday

NSString

生日

city

NSString

城市

country

NSString

国家

VMid

NSString


nickName

NSString

昵称

provice

NSString

省份

photoProfile

NSString

照片档案



2. 设备管理


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

 

功能说明

设备管理相关类:

类名

说明

ZJViewerDevice

设备信息配置管理

ZJViewerGroup

组内设备的管理

ZJViewerGroupManager

组信息管理

ZJ_DeviceDesc

设备数据类型

 

初始化设备

根据设备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;

 

参数说明

参数

说明

name

设备名称

success

成功回调

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;

 

参数说明

参数

说明

deviceId

设备ID

success

成功回调

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;

 

参数说明

参数

说明

success

成功回调,返回ZJ_NetworkInfo模型,为当前网络信息

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类来实现视频的操作管理,包括实时视频、录像回放、视频下载等。

 

功能说明

类名

说明

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;

 

参数说明

参数

说明

deviceId                            

设备ID

targetView

展示播放器的view

mode

校正模式,普通摄像机用ZJ_VRModeNone

 

示例代码

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;

 

参数说明

参数

说明

streamIndex

当前播放的的流id (0 超清、 1 高清)

streamChannelCreatedBlock

视频连接,流通道创建成功回调,一般不在内部做操作

firstVideoFrameShowBlock

获取到视频第一帧画面的时候回调,一些操作可在该回调执行

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;

 

参数说明

参数

说明

startTime

录像的开始时间点  yyyy-MM-dd

streamChannelCreatedBlock

视频连接,流通道创建成功回调,一般不在内部做操作

firstVideoFrameShowBlock

获取到视频第一帧画面的时候回调,一些操作可在该回调执行

playEndedBlock

视频播放完成/出错会执行此回调

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;

 

参数说明

参数

说明

startTime

录像的开始时间点  yyyy-MM-dd

streamChannelCreatedBlock

视频连接,流通道创建成功回调,一般不在内部做操作

firstVideoFrameShowBlock

获取到视频第一帧画面的时候回调,一些操作可在该回调执行

playEndedBlock

视频播放完成/出错会执行此回调

timeStampChangedBlock

录像视频时间戳变化的回调

 

示例代码

[renderView startCloudStreamOnStartTime:(NSString *)startTime

               StreamChannelCreated::streamIndex StreamChannelCreated:^{

         // 创建流通到成功

 } FirstVideoFrameShow:^{

         // 获取第一帧视频成功

 } PlayEnded:^(NSError * _Nonnull error) {

         // 播放结束/播放失败

 }];

 

切换视频流

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

 

接口说明

/**

 *  切换流

 *

 *  @param deviceId                             设备ID

 *  @param streamIndex                      流的id0 超清  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;

 

参数说明

参数

说明

deviceId

录像的开始时间点  yyyy-MM-dd

streamIndex

id0 超清  1 高清)

streamChannelCreatedBlock

视频连接,流通道创建成功回调,一般不在内部做操作

firstVideoFrameShowBlock

获取到视频第一帧画面的时候回调,一些操作可在该回调执行

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)


联系我们

技术支持:郑工

189 3897 4717

商务合作:余总

183 9006 6666