会话置顶
会话置顶功能提供以下能力:
- 在会话列表中置顶会话:通过会话(
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;
}
});
参数 | 类型 | 说明 |
---|---|---|
conIdList | List<ConversationIdentifier> | 会话标识数组。 |
option | ISetConversationTopOption | 配置 |
/**
* 置顶配置
* @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;
});
参数 | 类型 | 说明 |
---|---|---|
conId | ConversationIdentifier | 会话 标识 |
分页获取置顶会话列表
只获取置顶的会话列表
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>;
});
参数 | 类型 | 说明 |
---|---|---|
conversationTypes | List of [ConversationType] | 会话类型数组 |