更新时间: 2021-03-08
融云 IMKit 已经实现了一个默认的会话列表视图控制器,直接使用或继承此类,即可快速启动和使用会话列表界面。
# 构建会话列表
# 效果展示
图中未展示发送者昵称和头像是因为未设置用户信息,具体如何设置请参考 设置用户信息


/*! 会话列表界面类 */ @interface RCConversationListViewController : RCBaseViewController <UITableViewDataSource, UITableViewDelegate>
已复制
2
3
4
# 构建说明
开发者可通过两种方式使用会话列表页面。
直接使用此类
建议仅在排查会话列表的相关错误时使用,如果在使用此页面期间出现了相关问题,可以直接 push 到此类排查是否能复现相关问题。
继承使用此类
开发者可继承此类,并跳转到此页面来开发相关内容。
# 参数说明
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
displayConversationTypeArray | NSArray | 是 | 列表中需要显示的会话类型数组 |
collectionConversationTypeArray | NSArray | 否 | 列表中需要聚合为一条显示的会话类型数组 |
displayConversationTypeArray
和 collectionConversationTypeArray
都需要先将 RCConversationType
转为 NSNumber
再构建 Array
,直接传 RCConversationType
会导致无法显示列表数据。
# 方法原型
- (instancetype)initWithDisplayConversationTypes:(NSArray *)displayConversationTypeArray collectionConversationType:(NSArray *)collectionConversationTypeArray;
已复制
2
# 代码示例
NSArray *displayConversationTypeArray = @[@(ConversationType_PRIVATE)]; RCDConversationListViewController *conversationListVC = [[RCDConversationListViewController alloc] initWithDisplayConversationTypes:displayConversationTypeArray collectionConversationType:nil]; [self.navigationController pushViewController:conversationListVC animated:YES];
已复制
2
3
# 构建聚合会话列表
开发者只需在构建会话列表的构建方法中中传入需要聚合的会话类型即可。
# 常见问题
Q1: 当用户卸载重新安装后发现会话列表为空或者部分会话丢失
A1: 由于会话列表是从本地数据库获取的, 是在 SDK 内部数据库存储的,所以当用户在卸载的时候会删除本地数据库,导致重新安装后会话列表为空,而会出现部分会话的原因是因为开启了离线消息补偿
功能,具体操作是在后台购买 多设备消息同步 (opens new window) 功能,这个功能里默认涵盖了今天(当天 0 点)的离线消息补偿,所以当用户在新设备登陆会触发离线消息补偿功能,从而获取到部分会话,造成部分会话丢失的错觉。如果想要更多天的离线消息补偿,可 提交工单 (opens new window) 修改,最多支持 7 天,设置时间过长,当单用户消息量超大时,可能会因为补偿消息量过大,造成端上处理压力的问题。