会话置顶
会话置顶功能提供以下能力:
- 在会话列表中置顶会话:通过会话(
RCConversation
)的置顶(isTop
)属性控制。 - 在携带同一标签的会话中置顶(需配合使用会话标签功能):通过 RCConversationTagInfo 类的
isTop
属性控制。 - 从 5.20.0 版本开始,支持超级群类型会话置顶,该功能需提交工单申请开通。
监听置顶状态同步
SDK 提供了会话状态(置顶状态数据和免打扰状态数据)同步机制。设置会话状态同步监听器后,如果会话状态改变,可在本端收到通知。
会话的置顶和免打扰状态数据同步后,触发 ConversationStatusListener
的 onStatusChanged
方法。详细说明可参见多端同步免打扰/置顶。
在会话列表中置顶会话
您在设置指定会话在会话列表中置顶后,IMLib SDK 将修改 RCConversation 的 isTop
字段,该状态将会被同步到服务端。融云会在为用户自动同步会话置顶的状态数据。客户端可以主动获取或通过监听器获取到最新数据。
提示
- 从 5.3.0 版本开始,建议使用异步返回结果的接口,原同步接口同时废弃。
设置会话置顶
使用 setConversationToTop:targetId:isTop:completion: 设置会话置顶。
接口原型
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) {}];
客户端通过本地消息数据自动生成会话与会话列表,并会在用户登录的多个设备之间同步置顶状态。如果在调用该 API 时,要置顶的会话在本地或该用户登录 的其他设备上不存在(会话尚未生成,或者已被移除),SDK 将直接创建会话并置顶。
设置会话置顶可选择是否更新会话时间
您可以使用 [setConversationToTop:targetId:isTop:needUpdateTime:completion:] 设置会话置顶控制是否更新会话时间。
接口原型
Objective C
- (void)setConversationToTop:(RCConversationType)conversationType
targetId:(NSString *)targetId
isTop:(BOOL)isTop
needUpdateTime:(BOOL)needUpdateTime
completion:(nullable void(^)(BOOL result))completion;