会话置顶
IMKit 支持展示置顶会话。
提示
IMKit 可根据会话的置顶属性在会话列表中置顶展示会话,但未在 UI 上实现设置置顶功能。
局限
- IMKit 未在 UI 上实现设置会话置顶功能。
用法
您需要自行在 UI 上实现设置会话置顶的功能。用户设置会话置顶后,该状态将会被同步到服务端。融云会为用户自动在设备间同步会话置顶的状态数据。客户端可以通过监听器获取同步通知。
设置是否置顶
设置会话置顶后,会话将在会话列表页面置顶显示。所有置顶会话按照会话时间降序排列。
IMKit SDK 未直接提供该方法,您需要使用 IMLib 中的方法置顶会话。
接口原型
Objective C
- (void)setConversationToTop:(RCConversationType)conversationType
targetId:(NSString *)targetId
isTop:(BOOL)isTop
completion:(nullable void(^)(BOOL ret))completion;
参数说明
参数 | 类型 | 说明 |
---|---|---|
conversationType | RCConversationType | 会话类型,支持单聊、群聊、系统会话。 |
targetId | NSString | 会话 id |
isTop | BOOL | 是否置顶 |
completion | Block | 设置置顶结果回调 |
示例代码
Objective C
// Set the conversation type and target ID
RCConversationType conversationType = ConversationType_PRIVATE;
NSString *targetId = @"your_target_id";
// Set the conversation to top or not
BOOL isTop = YES;
[[RCCoreClient sharedCoreClient] setConversationToTop:conversationType
targetId:targetId
isTop:isTop
completion:^(BOOL success) {}];
IMKit SDK 一般通过本地消息数据自动生成会话与会话列表。如果需要置顶的会话在本地尚不存在, SDK 会自动创建该会话。
监听置顶状态同步
即时通讯业务支持会话状态(置顶状态数据和免打扰状态数据)同步机制。设置会话状态同步监听器后,如果会话状态改变,可在本端收到通知。
会话的置顶和免打扰状态数据同步后,SDK 会分发下 面通知。
Objective C
FOUNDATION_EXPORT NSString *const RCKitDispatchConversationStatusChangeNotification;
Notification 的 object 是 RCConversationStatusInfo 对象的数组,userInfo
为 nil。
- 注册通知监听器:
Objective C
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(onConversationStatusChanged:)
name:RCKitDispatchConversationStatusChangeNotification
object:nil];
- 收到通知之后可以更新您的会话的状态。
Objective C
- (void)onConversationStatusChanged:(NSNotification *)notification {
NSArray<RCConversationStatusInfo *> *conversationStatusInfos = notification.object;
}
获取会话置顶状态与置顶会话
您可以从客户端主动获取会话置顶状态数据和置顶会话。
IMKit SDK 未直接提供该方法,您需要使用 IMLib 中的方法。详见 IMLib 文档会话置顶 中的获取会话置顶状态与获取置顶会话列表。