Page History

Home

Last edited by 王军波

iOS 互动 SDK 2.1.1


一、产品概述

CNLiveChatManager 是视讯云推出的iOS平台上使用的软件开发工具包(SDK),为开发者提供简单快捷的接口,帮助开发者实现在各个平台上的聊天及评论功能。需配合CNLiveMsgTools软件开发工具包(SDK)一起使用。

二、版本更新说明

2017.03.10(版本号:2.0.0)

新增连接服务器状态监听方法;

新增加入聊天室状态监听方法;

新增单聊功能;

新增异地登录被踢下线功能;

2017.06.08(版本号:2.1.0)

新增获取评论列表方法;

新增评论一条节目方法;

新增给评论点赞方法;

新增获取节目评论数方法;

2017.06.12(版本号:2.1.1)

新增获取聊天室人数方法;

三、SDK功能特性

支持同时加入多个聊天室;

支持断线自动重连;

实时监听与服务器的连接状态;

可获取当前用户信息;

可主动获取当前连接状态;

四、系统要求

最低支持iOS版本:iOS 8.0

支持的CPU架构:armv7,arm64,x86_64

五、集成方式

下载互动SDK,同时需要下载CNLiveMsgTools视讯云通讯工具SDK。

导入互动SDK和工具SDK。

由于是动态库,在使用的时候需要把Framework 同时添加到‘Embedded Binaries’中。否则会报image not found错误。

使用聊天功能引入头文件

#import <CNLiveChatManager/CNLiveChatManager.h>

使用评论功能引入头文件

#import <CNLiveChatManager/CNLiveCommentManager.h>

注意:提交APP到App Store 时请用发布版SDK。

六、互动SDK聊天功能基本使用

6.1 初始化聊天SDK

/**
 初始化SDK方法

 @param appKey 从视讯云平台获取到的appKey
 @param appId    从视讯云平台获取到的appId
 @warning           必传参数
 @discussion   您在使用聊天SDK所有功能之前,您必须先调用此方法初始化SDK。在App整个生命周期中,您只需要执行一次初始化。
 */
- (void)initWithAppKey:(NSString *)appKey appId:(NSString *)appId;

代码示例:
    [[CNLiveChatManager sharedCNLiveChatManager] initWithAppKey:KAppKey appId:KAppId];

6.2连接到视讯云服务器

以匿名方式登陆到服务器

/**
 连接到视讯云服务器

 @param successBlock 连接建立成功的回调。
 @param errorBlock   连接建立成功的回调,返回错误码。
 */
- (void)connectServerSuccess:(void (^)())successBlock
                       error:(void (^)(CNLiveChatConnectErrorCode errors))errorBlock;

注:连接服务器成功后才能使用聊天功能(如:单聊、加入聊天室、聊天室内聊天);

已用户信息方式登陆到服务器

/**
 以用户信息登陆到视讯云服务器

 @param userInfo     用户信息
 @param successBlock 登陆成功的回调,返回登陆成功的用户ID。
 @param errorBlock   登陆失败的回调,返回错误码。
 */
- (void)loginServer:(CNLiveChatUserInfo *)userInfo
                       success:(void (^)(NSString *userId))successBlock
                         error:(void (^)(CNLiveChatConnectErrorCode errors))errorBlock;

6.3当前用户登出服务器

/**
 当前用户登出服务器
 */
- (void)logoutServer;

6.4 断开与服务器的连接

/**
 断开与服务器的连接

 @param isReceivePush 与服务器断开后,是否还接收远程推送
 */
- (void)disconnectServer:(BOOL)isReceivePush;

6.5 加入聊天室

加入已经存在的聊天室

/**
 加入已经存在的聊天室(如果不存在或超限会返回聊天室不存在错误23410 或 人数超限23411)

 @param targetId     要加入的聊天室ID
 @param messageCount 进入聊天室时获取历史消息的数量,-1<=messageCount<=50
 -1表示不获取任何历史消息,0表示不特殊设置而使用SDK默认的设置(默认为获取10条),0<messageCount<=50为具体获取的消息数量,最大值为50。
 @param successBlock 加入聊天室成功的回调,返回成功加入的聊天室ID。
 @param errorBlock   加入聊天室失败的回调,返回错误码以及加入失败的聊天室ID。
 */
- (void)joinExistChatRoom:(NSString *)targetId
          messageCount:(int)messageCount
               success:(void (^)(NSString *targetId))successBlock
                 error:(void (^)(CNLiveChatErrorCode errors, NSString *targetId))errorBlock;

加入聊天室, 若不存在自动创建聊天室

/**
 加入聊天室,若不存在自动创建聊天室

 @param targetId     要加入的聊天室ID
 @param messageCount 进入聊天室时获取历史消息的数量,-1<=messageCount<=50
 -1表示不获取任何历史消息,0表示不特殊设置而使用SDK默认的设置(默认为获取10条),0<messageCount<=50为具体获取的消息数量,最大值为50。
 @param successBlock 加入聊天室成功的回调,返回成功加入的聊天室ID
 @param errorBlock   加入聊天室失败的回调,返回错误码以及加入失败的聊天室ID
 */
- (void)joinChatRoom:(NSString *)targetId
        messageCount:(int)messageCount
             success:(void (^)(NSString *targetId))successBlock
               error:(void (^)(CNLiveChatErrorCode errors, NSString *targetId))errorBlock;

6.6 获取聊天室成员人数

/**
获取聊天室成员人数

@param targetId     聊天室ID
@param successBlock 成功回调,返回聊天室成员数量
@param errorBlock   失败回调,返回错误代码
*/
- (void)getChatRoomInfo:(NSString *)targetId
                success:(void (^)(int totalMemberCount))successBlock
                  error:(void (^)(CNLiveChatErrorCode status))errorBlock;

6.7 退出聊天室

/**
 退出聊天室

 @param targetId     要退出的聊天室ID
 @param successBlock 退出聊天室成功的回调,返回成功退出的聊天室ID
 @param errorBlock   退出聊天室失败的回调,返回失败的错误码以及退出失败的聊天室的ID
 */
- (void)quitChatRoom:(NSString *)targetId
         success:(void (^)(NSString *targetId))successBlock
           error:(void (^)(CNLiveChatErrorCode errors, NSString *targetId))errorBlock;

6.8 发送消息

/**
 发送消息

 @param message      消息内容
 @param type         会话类型(私聊 / 聊天室)
 @param targetId     会话目标ID(私聊:用户ID / 聊天室:聊天室ID)
 @param successBlock 发送消息成功的回调,返回目标ID,消息实体类型对象(包括消息内容,会话类型,目标ID,发送者的用户信息)
 @param errorBlock   发送消息失败的回调,返回错误码,目标ID,会话类型
 */
- (void)sendMessage:(NSString *)message
               type:(CNLiveConversationType)type
           targetId:(NSString *)targetId
            success:(void (^)(NSString *targetId, CNLiveChatMessage *message))successBlock
              error:(void (^)(CNLiveChatErrorCode errors, NSString *targetId, CNLiveConversationType type))errorBlock;

6.9 获取当前SDK的连接状态

/**
 获取当前SDK的连接状态

 @return 当前SDK的连接状态
 */
(CNLiveConnectionStatus)getConnectionStatus;

6.10 获取某个会话中指定数量的最新消息

/**
 获取某个会话中指定数量的最新消息

 @param conversationType 会话类型(私聊 / 聊天室)
 @param targetId         会话目标ID(私聊:用户ID / 聊天室:聊天室ID)
 @param count            所要获取的消息数量

 @return 消息数组(CNLiveChatMessage类型)
 */
- (NSArray *)getLatestMessages:(CNLiveConversationType)conversationType
                      targetId:(NSString *)targetId
                         count:(int)count;

6.11 当前登录用户的用户信息

/**
 当前登录用户的用户信息

 @discussion 用于与融云服务器建立连接之后,获取&设置当前用户的用户信息。
 用户ID不允许重新设置,只能设置昵称&头像。
 */
@property(nonatomic, strong) CNLiveChatUserInfo *currentUserInfo;

6.12 聊天SDK代理

/**
 聊天SDK代理,设置代理后,实现代理方法。
 */
@property (nonatomic, weak) id<CNLiveChatManagerDelegate> delegate;

6.13 连接状态的的监听器(代理方法)

/**
 连接状态的的监听器

 @param status 网络连接状态码
 */
- (void)onConnectionStatusChanged:(CNLiveConnectionStatus)status;

6.14 加入聊天室状态监听(代理方法)

加入聊天室成功的监听

/**
 加入聊天室成功的监听
 @param chatroomId 聊天室ID
 */
- (void)onChatRoomJoined:(NSString *)chatroomId;

加入聊天室失败的监听

/*!
 加入聊天室失败的监听

 @param chatroomId 聊天室ID
 @param errorCode  加入失败的错误码

 @discussion 如果错误码是CNLive_KICKED_FROM_CHATROOM或CNLive_CHATROOM_NOT_EXIST,则不会自动重新加入聊天室,App需要按照自己的逻辑处理。
 */
- (void)onChatRoomJoinFailed:(NSString *)chatroomId
                   errorCode:(CNLiveChatErrorCode)errorCode;

6.15 接收消息监听(代理方法)

/**
 接收消息监听

 @param message 消息实体类型对象
 */
- (void)onReceived:(CNLiveChatMessage *)message;

6.16 当前用户在其他设备上登录代理方法)

/**
 当前用户在其他设备上登录,此设备被踢下线。
 */
- (void)kickedByAnotherDevice;

七、互动SDK评论功能基本使用

7.1 注册视讯评论方法

/**
 注册视讯评论

 @param appId  从视讯云平台获取到的appId
 @param appKey 从视讯云平台获取到的appKey
 */
- (void)registerWithAppId:(NSString *)appId appKey:(NSString *)appKey;

7.2 获取评论列表方法

/**
 获取评论列表

 @param programId       节目ID
 @param page            页号
 @param pageSize        每页显示的条数
 @param successBlock    获取列表成功回调
 @param errorBlock      获取列表失败回调
 */
- (void)getCommentListWithProgramId:(NSString *)programId
                               page:(NSString *)page
                           pageSize:(NSString *)pageSize
                            success:(void (^)(CNLiveCommentListResult *result))successBlock
                              error:(void (^)(NSString *error))errorBlock;

7.3 评论一条节目方法

/**
 评论一条节目

 @param programId       节目ID
 @param sid             用户ID
 @param comment         评论内容
 @param completionBlock 评论结果回调,{errorCode:"0",errorMsg:"成功"},
                                   {errorCode:"xxx",//错误代码(非0)errorMsg:"失败" //错误信息}
 */
- (void)commentOnProgramWithProgramId:(NSString *)programId
                                  sid:(NSString *)sid
                              comment:(NSString *)comment
                           completion:(void (^)(NSString *errorCode, NSString *errorMsg))completionBlock;

7.4 给评论点赞方法

/**
 给评论点赞

 @param programId       节目ID
 @param sid             用户ID
 @param commentId       评论ID
 @param completionBlock 点赞结果回调,{errorCode:"0",errorMsg:"成功"},
                                   {errorCode:"xxx",//错误代码(非0)errorMsg:"失败" //错误信息}
 */
- (void)commentaryLikeWithProgramId:(NSString *)programId
                                sid:(NSString *)sid
                          commentId:(NSString *)commentId
                         completion:(void (^)(NSString *errorCode, NSString *errorMsg))completionBlock;

7.5 获取节目评论数方法

/**
 获取节目评论数

 @param programIds      节目ID数组(数组内可以是字符串类型,可以是NSNumber类型,其他不支持)
 @param completionBlock 获取节目评论数回调结果,{errorCode:"0",errorMsg:"成功"},
                                           {errorCode:"xxx",//错误代码(非0)errorMsg:"失败" //错误信息}
                                           commentArray:CNLiveCommentCountResult类型数组,CNLiveCommentCountResult包含节目ID及对应的评论数;
 */
- (void)getCommentCountWithProgramIds:(NSArray *)programIds
                           completion:(void (^)(NSString *errorCode, NSString *errorMsg, NSArray <CNLiveCommentCountResult *>*commentArray))completionBlock;

八、常见错误提示

常见失败信息:

示例:请求token错误
{
    errorCode = "sys_1015";
    errorMessage = "appID\U65e0\U6548";
}