跳到主要内容

会话置顶

会话置顶功能提供以下能力:

  • 在会话列表中置顶会话:通过会话(Conversation)的置顶(isTop)属性控制。

在会话列表中置顶会话

设置指定会话在会话列表中置顶后,SDK 将修改 [Conversation] 的 isTop 字段,该状态将会被同步到服务端。融云会在为用户自动同步会话置顶的状态数据。客户端可以主动获取或通过监听器获取到最新数据。

设置批量会话置顶

使用 [setConversationsToTop] 设置批量会话置顶。

let conIdList = new List<ConversationIdentifier>();
let conId1 = new ConversationIdentifier();
conId1.conversationType = ConversationType.Private;
conId1.targetId = "会话 id";
conIdList.add(conId1)

let conId2 = new ConversationIdentifier();
conId2.conversationType = ConversationType.Private;
conId2.targetId = "会话 id";
conIdList.add(conId2)

let option: ISetConversationTopOption = {
isTop: true,
isNeedCreate: false
}


IMEngine.getInstance().setConversationsToTop(conIdList, option)
.then(result => {
if (EngineError.Success !== result.code) {
// 设置置顶失败
return;
}
});
参数类型说明
conIdListList<ConversationIdentifier>会话标识数组。
optionISetConversationTopOption配置
/**
* 置顶配置
* @version 1.0.0
*/
interface ISetConversationTopOption {
/**
* 是否置顶,true 设置置顶;false 取消置顶
*/
isTop: boolean,

/**
* 是否创建会话:对应的会话本地不存在时,true 将创建该会话; false 不创建该会话
*/
isNeedCreate: boolean,
}

监听置顶状态同步

SDK 提供了会话状态(置顶状态数据和免打扰状态数据)同步机制。设置会话状态同步监听器后,如果会话状态改变,可在本端收到通知。

会话的置顶和免打扰状态数据同步后,触发 ConversationStatusListener 方法。详细说明可参见多端同步免打扰/置顶

public setConversationStatusListener(listener: (items: List<ConversationStatusInfo>) => void): void

获取会话置顶状态

主动获取指定会话的置顶状态。

    let conId = new ConversationIdentifier();
conId.conversationType = ConversationType.Private;
conId.targetId = "会话 id";

IMEngine.getInstance().getConversationTopStatus(conId)
.then(result => {
if (EngineError.Success !== result.code) {
// 获取置顶状态失败
return;
}
if (!result.data) {
// 置顶状态为空
return;
}
let isTop = result.data as boolean;

});
参数类型说明
conIdConversationIdentifier会话 标识

分页获取置顶会话列表

只获取置顶的会话列表

let conTypeList = new List<ConversationType>();
conTypeList.add(ConversationType.Private);
conTypeList.add(ConversationType.Group);

let option: IGetConversationOption = {
time: 0,
count: 10
}

IMEngine.getInstance().getTopConversationListByPage(conTypeList, option)
.then(result => {

if (EngineError.Success !== result.code) {
// 获取会话列表失败
return;
}
if (!result.data) {
// 会话列表为空
return;
}
let conList = result.data as List<Conversation>;
});
参数类型说明
conversationTypesList of [ConversationType]会话类型数组