获取会话
IMLib SDK 会根据用户收发的消息,在本地数据库中 生成对应会话,并维护会话列表。应用程序可以获取本地数据库中的会话列表。
获取指定单个会话
您可以通过 getConversation
获取某个会话的详细信息。
接口原型
TypeScript
public getConversation(conId: ConversationIdentifier): Promise<IAsyncResult<Conversation>>;
参数说明
参数 | 类型 | 说明 |
---|---|---|
conId | ConversationIdentifier | 会话标识,包含会话类型,会话 id |
示例代码
TypeScript
let conId = new ConversationIdentifier();
conId.conversationType = ConversationType.Private;
conId.targetId = "会话 id";
IMEngine.getInstance().getConversation(conId)
.then(result => {
if (EngineError.Success !== result.code) {
// 获取回话失败
return;
}
if (!result.data) {
// 会话为空
return;
}
let con = result.data as Conversation;
});
获取会话列表
会话列表是 SDK 在本地生成和维护的。如果未发生卸载重载或换设备登录,您可以获取本地设备上存储的所有历史消息生成的会话列表。
分页获取会话列表
您可以分页获取 SDK 在本地数据库生成的会话列表,返回的会话列表按照时间倒序排列。如果返回结果含有被设置为置顶状态的会话,则置顶会话默认排在最前。
使用 getConversationListByPage
方法,IGetConversationOption 的时间戳(time
)首次可传 0,后续可以使用返回的 Conversation
对象的 sentTime
或 operationTime
属性值为下一次查询的 startTime
。推荐使用 operationTime
。
接口原型
TypeScript
public getConversationListByPage(conTypeList: List<ConversationType>, option: IGetConversationOption): Promise<IAsyncResult<List<Conversation>>>;
参数说明
参数 | 类型 | 说明 |
---|---|---|
conversationTypes | List of ConversationType | 选择要获取的会话类型。可设置多个会话类型。 |
option | IGetConversationOption | 获取会话配置。 |
示例代码
TypeScript
let conTypeList = new List<ConversationType>();
conTypeList.add(ConversationType.Private);
conTypeList.add(ConversationType.Group);
let option: IGetConversationOption = {
time: 0,
count: 10
}
IMEngine.getInstance().getConversationListByPage(conTypeList, option)
.then(result => {
if (EngineError.Success !== result.code) {
// 获取会话列表失败
return;
}
if (!result.data) {
// 会话列表为空
return;
}
let conList = result.data as List<Conversation>;
});
分页获取置顶会话列表
您可以选择只获取置顶的会话列表。
接口原型
TypeScript
public getTopConversationListByPage(conTypeList: List<ConversationType>, option: IGetConversationOption): Promise<IAsyncResult<List<Conversation>>>;
参数说明
参数 | 类型 | 说明 |
---|---|---|
conversationTypes | List of ConversationType | 会话类型数组 |
示例代码
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>;
});
分页获取免打扰会话列表
您可以分页获取置顶会话类型的会话列表。
接口原型
TypeScript
public getBlockedConversationListByPage(conTypeList: List<ConversationType>, option: IGetConversationOption): Promise<IAsyncResult<List<Conversation>>>;
参数说明
参数 | 类型 | 说明 |
---|---|---|
conversationTypes | List of ConversationType | 选择要获取的会话类型。可设置多个会话类型。 |
option | IGetConversationOption | 获取会话配置。 |
示例代码
TypeScript
let conTypeList = new List<ConversationType>();
conTypeList.add(ConversationType.Private);
conTypeList.add(ConversationType.Group);
let option: IGetConversationOption = {
time: 0,
count: 10
}
IMEngine.getInstance().getBlockedConversationListByPage(conTypeList, option)
.then(result => {
if (EngineError.Success !== result.code) {
// 获取会话列表失败
return;
}
if (!result.data) {
// 会话列表为空
return;
}
let conList = result.data as List<Conversation>;
});
获取未读会话列表
提示
SDK 从 1.1.0 版本开始支持获取未读会话列表。