跳到主要内容

会话置顶

IMKit 提供设置会话置顶与展示置顶会话。

用法

设置会话置顶后,该状态将会被同步到服务端。融云会为用户自动在设备间同步会话置顶的状态数据。客户端可以通过监听器获取同步通知,也可以主动获取最新数据。

定制化

如果 IMKit 默认实现的功能不满足需求,您可以使用 IMKit 提供的 API。

设置会话置顶

设置会话置顶后,会话将在会话列表页面置顶显示。所有置顶会话按照会话时间降序排列。

客户端一般通过本地消息数据自动生成会话与会话列表。如果需要置顶的会话在本地尚不存在,您可以通过设置 isNeedCreate 参数为 true 来创建会话。

// 添加准备置顶/取消置顶的会话
let conversationIds: List<ConversationIdentifier> = new List();
conversationIds.add(ConversationIdentifier.createWith2(ConversationType.Private, "targetId"));
// 会话置顶参数
let option: ISetConversationTopOption = {
// 是否置顶
isTop: !conversation.isTop,
// 是否创建会话:对应的会话本地不存在时,true 将创建该会话; false 不创建该会话
isNeedCreate: false,
// 是否更新会话时间,默认为 true
isNeedUpdateTime: true,
}
RongIM.getInstance().conversationService().setConversationsToTop(conversationIds, option)
参数类型说明
conversationIdsList<ConversationIdentifier>会话 id 标识列表
optionISetConversationTopOption置顶配置

ISetConversationTopOption 参数

参数类型说明
isTopboolean是否置顶,true 设置置顶;false 取消置顶
isNeedCreateboolean是否创建会话:对应的会话本地不存在时,true 将创建该会话; false 不创建该会话
isNeedUpdateTimeboolean是否更新会话时间,非必选,默认为 true

监听置顶状态同步

即时通讯业务支持会话状态(置顶状态数据和免打扰状态数据)同步机制。设置会话状态同步监听器后,如果会话状态改变,可在本端收到通知。同时也支持监听本端操作的修改置顶和免打扰状态。

详细说明可参见多端同步免打扰/置顶

interface ConversationListEventListener {

/**
* 当其他端修改会话的免打扰和置顶状态时
*/
onSyncConversationStatus?: (items: List<ConversationStatusInfo>) => void;

/**
* 当本端修改会话的置顶状态时
*/
onConversationTopStatusChange?: (identifierList: List<ConversationIdentifier>, option: ISetConversationTopOption) => void;
}

获取会话置顶状态与置顶会话

您可以从客户端主动获取会话置顶状态数据和置顶会话,但 IMKit SDK 未直接提供相关方法,您需要使用 IMLib 中提供的方法。

详见 IMLib 文档会话置顶 中的获取会话置顶状态获取置顶会话列表