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";
}