1、在Appdelegate初始化
//初始化SDK,执行一次即可
[[RCIM sharedRCIM] initWithAppKey:RCIM_App_Key];
//设置会话列表中显示的头像形状(RC_USER_AVATAR_RECTANGLE--矩形;RC_USER_AVATAR_CYCLE--圆形)
[RCIM sharedRCIM].globalConversationAvatarStyle = RC_USER_AVATAR_CYCLE;
//设置聊天界面中显示的头像形状
[RCIM sharedRCIM].globalMessageAvatarStyle = RC_USER_AVATAR_CYCLE;
//正在输入的状态提示
[RCIM sharedRCIM].enableTypingStatus = YES;
=======================
//通过后台获取token,建立连接
//连接上IM
[[RCIM sharedRCIM] connectWithToken:userToken success:^(NSString *userId) {
//登录成功
NSLog(@"登陆成功。当前登录的用户ID:%@", userId);
//设置IM用户信息提供者(协议接口)
[[RCIM sharedRCIM] setUserInfoDataSource:self];
//设置IM群组信息提供者(协议接口)
[[RCIM sharedRCIM] setGroupInfoDataSource:self];
/*!
* 消息接收监听(协议接口RCIMReceiveMessageDelegate)
* 主要有三个接口:
* – onRCIMReceiveMessage:left:在前台和后台活动状态时收到任何消息都会执行。
* – onRCIMCustomLocalNotification:withSenderName:在后台活动状态时接收到消息弹出本地通知前触发,可自定义本地通知。
* – onRCIMCustomAlertSound:在前台状态收到消息时收到消息会执行,可以自定义消息提示音。
*/
[[RCIM sharedRCIM] setReceiveMessageDelegate:self];
} error:^(RCConnectErrorCode status) {
//登录失败
NSLog(@"登陆的错误码为:%ld", (long)status);
} tokenIncorrect:^{
//token过期或者不正确。
//如果设置了token有效期并且token过期,请重新请求您的服务器获取新的token
//如果没有设置token有效期却提示token错误,请检查您客户端和服务器的appkey是否匹配,还有检查您获取token的流程。
NSLog(@"token错误");
}];
2、准备进入聊天室
创建控制器,继承于RCConversationViewController,也就是聊天室,就如下面的MerchantMessageViewController
MerchantMessageViewController *chat = [[MerchantMessageViewController alloc] init];
//设置会话的类型,如单聊、讨论组、群聊、聊天室、客服、公众服务会话等
chat.conversationType = ConversationType_PRIVATE;
//设置会话的目标会话ID。(单聊、客服、公众服务会话为对方的ID,讨论组、群聊、聊天室为会话的ID)
chat.targetId = merUserId;
//设置聊天会话界面要显示的标题
chat.title = merMallName;
//显示聊天会话界面
//chat.hidesBottomBarWhenPushed = YES;
[self.navigationController pushViewController:chat animated:YES];
3、聊天室里面的设置
//右上角的未读消息数提示
self.enableUnreadMessageIcon = YES;
//右下角的未读消息数提示
self.enableNewComingMessageIcon = YES;
// 代理方法,点击了头像
- (void)didTapCellPortrait:(NSString *)userId{
// NSLog(@"userId=%@",userId);
}
的