跳到主要内容

会话置顶

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

在会话列表中置顶会话

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

监听置顶状态同步

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

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

设置批量会话置顶

您可以使用 setConversationsToTop 方法设置批量会话置顶。

接口原型

TypeScript
public setConversationsToTop(conIdList: List<ConversationIdentifier>, option: ISetConversationTopOption): Promise<IAsyncResult<void>>;

参数说明

参数类型说明
conIdListList<ConversationIdentifier>会话标识数组。
optionISetConversationTopOption配置
TypeScript
/**
* 置顶配置
* @version 1.0.0
*/
interface ISetConversationTopOption {
/**
* 是否置顶,true 设置置顶;false 取消置顶
*/
isTop: boolean,

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

示例代码

TypeScript
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;
}
});

获取会话置顶状态

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

接口原型

TypeScript
public getConversationTopStatus(conId: ConversationIdentifier): Promise<IAsyncResult<boolean>>;

参数设置

参数类型说明
conIdConversationIdentifier会话 标识

示例代码

TypeScript
    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;

});

分页获取置顶会话列表

您可以通过会话标识分页获取置顶的会话列表。

示例代码

TypeScript
public getTopConversationListByPage(conTypeList: List<ConversationType>, option: IGetConversationOption): Promise<IAsyncResult<List<Conversation>>>;

参数说明

参数类型说明
conversationTypesList of ConversationType会话类型数组
optionIGetConversationOption获取会话配置。

示例代码

TypeScript
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>;
});