本地会话
更新时间: 2024/09/14 16:30:29
网易云信即时通讯 SDK(简称 NIM SDK)支持本地会话管理功能,包括创建、更新、删除本地会话等基础操作,以及置顶会话等进阶操作。
本地会话列表由 SDK 维护并提供查询、监听变化的接口,当会话变更时,SDK 会自动更新会话列表并通知,您无需手动更新。
如何实现本地会话相关功能请参考 本地会话管理。本文介绍 NIM SDK 本地会话相关 API。
支持平台
目前 V10 的本地会话功能只支持 HarmonyOS 客户端。
API 概览
本地会话监听
API | 说明 | 起始版本 |
---|---|---|
on("EventName") | 注册本地会话相关监听 | HarmonyOS v1.3.0 |
off("EventName") | 取消注册本地会话相关监听 | HarmonyOS v1.3.0 |
本地会话操作
API | 说明 | 起始版本 |
---|---|---|
createConversation | 创建一条空本地会话 | HarmonyOS v1.3.0 |
updateConversationLocalExtension | 更新会话的本地扩展信息 | HarmonyOS v1.3.0 |
deleteConversation | 删除一条本地会话 | HarmonyOS v1.3.0 |
deleteConversationListByIds | 根据会话 ID 批量删除本地会话列表 | HarmonyOS v1.3.0 |
stickTopConversation | 置顶会话 | HarmonyOS v1.3.0 |
getConversation | 根据会话 ID 获取单条本地会话 | HarmonyOS v1.3.0 |
getConversationList | 获取所有本地会话列表 | HarmonyOS v1.3.0 |
getConversationListByIds | 根据会话 ID 批量获取本地会话列表 | HarmonyOS v1.3.0 |
getConversationListByOption | 根据指定的筛选条件获取本地会话列表 | HarmonyOS v1.3.0 |
本地会话未读数
API | 说明 | 起始版本 |
---|---|---|
getTotalUnreadCount | 获取全部本地会话的消息总未读数 | HarmonyOS v1.3.0 |
getUnreadCountByIds | 根据会话 ID 获取指定本地会话的消息总未读数 | HarmonyOS v1.3.0 |
getUnreadCountByFilter | 根据过滤参数获取相应的消息未读数 | HarmonyOS v1.3.0 |
clearTotalUnreadCount | 清除所有本地会话的消息总未读数 | HarmonyOS v1.3.0 |
clearUnreadCountByIds | 根据会话 ID 清除指定本地会话列表的消息未读数 | HarmonyOS v1.3.0 |
clearUnreadCountByTypes | 根据会话类型清除指定本地会话类型的消息未读数 | HarmonyOS v1.3.0 |
subscribeUnreadCountByFilter | 订阅指定过滤条件的本地会话消息未读数变化 | HarmonyOS v1.3.0 |
unsubscribeUnreadCountByFilter | 取消订阅指定过滤条件的本地会话消息未读数变化 | HarmonyOS v1.3.0 |
markConversationRead | 标记本地会话已读时间戳 | HarmonyOS v1.3.0 |
getConversationReadTime | 获取本地会话已读时间戳 | HarmonyOS v1.3.0 |
接口类
V2NIMLocalConversationService
类提供创建、删除、更新、获取、置顶本地会话,本地会话消息未读数相关、注册本地会话监听等接口。
on("EventName")
接口描述
注册本地会话相关监听。
注册成功后,当事件发生时,SDK 会触发相关回调通知。
- 建议在初始化后调用该方法。
- 全局只需注册一次。
- 该接口为同步接口。
参数说明
TypeScriptexport interface NIMEBaseServiceInterface<I extends NIMEBaseListener> {
/**
* 继承自 eventEmitter3 的监听事件方法
*/
on<T extends keyof I>(eventName: T, fn: (...args: I[T]) => void): void
/**
* 继承自 eventEmitter3 的监听事件方法
*/
once<T extends keyof I>(eventName: T, fn: (...args: I[T]) => void): void
}
参数名称 | 类型 | 是否必填 | 默认值 | 说明 |
---|---|---|---|---|
eventName |
T | 是 | - | 事件名称:onSyncStarted :消息云端同步开始回调。建议在回调完成后操作数据,如果在此期间操作数据,会出现数据不全,只能操作部分数据的情况。onSyncFinished :消息云端同步结束回调。此回调后需要用户重新获取本地会话列表;回调后可任意操作相关的本地会话数据。onSyncFailed :消息云端同步失败回调。此回调后可以操作本地会话数据,但由于同步失败,本地只能操作已有数据,数据可能不全。在相关错误恢复后,SDK 会逐步按需重建会话数据。onConversationCreated :本地会话创建回调,返回创建的本地会话对象。当本端或多端同步主动创建本地会话成功时会触发该回调。onConversationDeleted :本地会话删除回调,返回被删除的本地会话 ID 列表。当本端或多端同步主动删除本地会话成功时会触发该回调。onConversationChanged :本地会话变更回调,返回变更后的会话列表。当本端或多端同步调用会话置顶、免打扰、更新消息内容成功时会触发该回调。onTotalUnreadCountChanged :本地会话消息总未读数变更回调,返回变更后的消息未读数。onUnreadCountChangedByFilter :指定过滤条件的会话消息未读数变更,根据过滤条件返回变更后的消息未读数。onConversationReadTimeUpdated :同一账号多端登录会话已读时间戳标记时间变更回调,返回同步标记的会话 ID 和标记的时间戳。 |
fn |
function | 是 | - | 监听事件的回调函数。当事件触发时,会调用该函数进行处理。 |
示例代码
TypeScriptnim.localConversationService.on("onSyncStarted", () => {})
nim.localConversationService.on("onSyncFinished", () => {})
nim.localConversationService.on("onSyncFailed", (err) => {})
nim.localConversationService.on("onConversationCreated", (conversation: V2NIMLocalConversation) => {})
nim.localConversationService.on("onConversationDeleted", (conversationIds: string[]) => {})
nim.localConversationService.on("onConversationChanged", (conversationList: V2NIMLocalConversation[]) => {})
nim.localConversationService.on("onTotalUnreadCountChanged", (unreadCount: number) => {})
nim.localConversationService.on("onUnreadCountChangedByFilter", (filter: V2NIMLocalConversationUnreadCountChangedFilter, unreadCount: number) => {
nim.localConversationService.on("onConversationReadTimeUpdated", (conversationId: string, readTime: number) => {})
返回值
无
off("EventName")
接口描述
取消注册本地会话相关监听。
该接口为同步接口。
参数说明
TypeScriptexport interface NIMEBaseServiceInterface<I extends NIMEBaseListener> {
/**
* 继承自 EventEmitter3 的取消监听方法。
*/
off<T extends keyof I>(eventName: T, fn: (...args: I[T]) => void): void
/**
* 继承自 eventEmitter3 的移除事件方法
*/
removeAllListeners<T extends keyof I>(eventName?: T): void
}
参数名称 | 类型 | 是否必填 | 默认值 | 说明 |
---|---|---|---|---|
eventName |
T | 是 | - | 事件名称:onSyncStarted :消息云端同步开始回调。建议在回调完成后操作数据,如果在此期间操作数据,会出现数据不全,只能操作部分数据的情况。onSyncFinished :消息云端同步结束回调。此回调后需要用户重新获取本地会话列表;回调后可任意操作相关的本地会话数据。onSyncFailed :消息云端同步失败回调。此回调后可以操作本地会话数据,但由于同步失败,本地只能操作已有数据,数据可能不全。在相关错误恢复后,SDK 会逐步按需重建会话数据。onConversationCreated :本地会话创建回调,返回创建的本地会话对象。当本端或多端同步主动创建本地会话成功时会触发该回调。onConversationDeleted :本地会话删除回调,返回被删除的本地会话 ID 列表。当本端或多端同步主动删除本地会话成功时会触发该回调。onConversationChanged :本地会话变更回调,返回变更后的会话列表。当本端或多端同步调用会话置顶、免打扰、更新消息内容成功时会触发该回调。onTotalUnreadCountChanged :会话消息总未读数变更回调,返回变更后的消息未读数。onUnreadCountChangedByFilter :指定过滤条件的会话消息未读数变更,根据过滤条件返回变更后的消息未读数。onConversationReadTimeUpdated :同一账号多端登录会话已读时间戳标记时间变更回调,返回同步标记的会话 ID 和标记的时间戳。 |
fn |
function | 是 | - | 监听事件的回调函数。当事件触发时,会调用该函数进行处理。 |
示例代码
TypeScriptnim.localConversationService.off("onSyncStarted", theListner)
nim.localConversationService.off("onSyncFinished", theListner)
nim.localConversationService.off("onSyncFailed", theListner)
nim.localConversationService.off("onConversationCreated", theListner)
nim.localConversationService.off("onConversationDeleted", theListner)
nim.localConversationService.off("onConversationChanged", theListner)
nim.localConversationService.off("onTotalUnreadCountChanged", theListner)
nim.localConversationService.off("onUnreadCountChangedByFilter", theListner)
nim.localConversationService.off("onConversationReadTimeUpdated", theListner)
// remove all listeners
nim.localConversationService.removeAllListeners()
返回值
无
createConversation
接口描述
创建一条空本地会话。
本端或多端同步创建成功后,SDK 会返回创建成功回调 onConversationCreated
,并同步更新缓存和数据库。
如果没有消息收发,该会话仅创建人可见。
使用场景
当需要本地占位空会话时可以调用该方法,一般情况下无需主动调用,收发消息时 SDK 会自动创建会话。
参数说明
TypeScriptcreateConversation(conversationId: string): Promise<V2NIMLocalConversation>
参数名称 | 类型 | 是否必填 | 默认值 | 说明 |
---|---|---|---|---|
conversationId |
String | 是 | - | 本地会话 ID,通过调用 V2NIMConversationIdUtil 的对应函数创建。V2NIMConversationType )| 聊天对象账号(accountId)或群组 ID。 |
示例代码
TypeScriptlet conversationId: string = "cjl|1|cjl1";
try {
let conv = await this.localConversationService.createConversation(conversationId)
// success
} catch (e) {
// fail
}
返回值
Promise<V2NIMLocalConversation
> 本地会话对象
相关回调
创建成功,返回 onConversationCreated
回调。
deleteConversation
接口描述
根据会话 ID 删除指定的本地会话。
本端或多端同步删除成功后,SDK 会返回删除成功回调 onConversationDeleted
,并同步更新缓存和数据库。
如果被删除的本地会话中有消息未读,SDK 还会返回 onTotalUnreadCountChanged
和 onUnreadCountChangedByFilter
回调。
参数说明
TypeScriptdeleteConversation(conversationId: string, clearMessage?: boolean): Promise<void>
参数名称 | 类型 | 是否必填 | 默认值 | 说明 |
---|---|---|---|---|
conversationId |
String | 是 | - | 本地会话 ID,通过 “用户账号(accountId)| 会话类型(V2NIMConversationType )| 聊天对象账号(accountId)或群组 ID” 拼接而成。如果为空、不合法、不存在则返回 191004 参数错误。 |
clearMessage |
Boolean | 否 | false | 是否同步删除本地会话对应的历史消息。V2NIMMessageService.clearHistoryMessage 方法实现。 |
示例代码
TypeScriptlet conversationId: string = "cjl|1|cjl1";
let clearMessage: boolean = true;
try {
await this.localConversationService.deleteConversation(conversationId, clearMessage)
// success
} catch (e) {
// fail
}
返回值
Promise<void>
相关回调
删除成功,返回 onConversationDeleted
回调。可能返回 onTotalUnreadCountChanged
和 onUnreadCountChangedByFilter
回调。
deleteConversationListByIds
接口描述
根据会话 ID 批量删除指定的本地会话列表。
本端或多端同步删除每一条本地会话成功后,SDK 均会返回删除成功回调 onConversationDeleted
回调,并同步更新缓存和数据库。
如果被删除的本地会话中有消息未读,SDK 还会返回 onTotalUnreadCountChanged
和 onUnreadCountChangedByFilter
回调。
参数说明
TypeScriptdeleteConversationListByIds(conversationIds: string[], clearMessage?: boolean): Promise<V2NIMLocalConversationOperationResult[]>
参数名称 | 类型 | 是否必填 | 默认值 | 说明 |
---|---|---|---|---|
conversationIds |
String[] | 是 | - | 本地会话 ID 列表。 |
clearMessage |
Boolean | 否 | false | 是否同步删除本地会话对应的历史消息。V2NIMMessageService.clearHistoryMessage 方法实现。 |
示例代码
TypeScriptlet conversationIds: string[] = ["cjl|1|cjl1", "cjl|2|cjl2"];
let clearMessage: boolean = true;
try {
let deleteFailedConversationList: V2NIMLocalConversationOperationResult[] = await this.localConversationService.deleteConversationListByIds(conversationIds, clearMessage)
if (deleteFailedConversationList && deleteFailedConversationList.length > 0) {
// partial success
} else {
// all success
}
} catch (e) {
// fail
}
返回值
Promise<V2NIMLocalConversationOperationResult
[]> 每个本地会话操作的返回对象
相关回调
每一条本地会话删除成功,均返回 onConversationDeleted
回调。可能返回 onTotalUnreadCountChanged
和 onUnreadCountChangedByFilter
回调。
getConversation
接口描述
根据会话 ID 获取单条本地会话。
数据同步完成前,可能查询不到完整数据或者查询到的是老数据。
参数说明
TypeScriptgetConversation(conversationId: string): Promise<V2NIMLocalConversation>
参数名称 | 类型 | 是否必填 | 默认值 | 说明 |
---|---|---|---|---|
conversationId |
String | 是 | - | 本地会话 ID,如果为空、不合法、不存在则返回 191004 参数错误。 |
示例代码
TypeScriptlet conversationId: string = "cjl|1|cjl1";
try {
let conv = await this.localConversationService.getConversation(conversationId)
// success
} catch (e) {
// fail
}
返回值
Promise<V2NIMLocalConversation
> 本地会话对象
相关回调
无
getConversationList
接口描述
分页查询所有本地会话列表。
该方法从客户端本地分页获取会话数据,本地历史会话数据无上限,因此建议分页多次获取,直到获取全量会话数据,SDK 会进行数据同步并返回对应回调通知 UI 层。
- 查询的本地会话列表结果中,置顶会话排首位。
- 数据同步完成前,可能查询不到完整数据或者查询到的是老数据。
- 查询云端会话时,当正好查询完所有数据时,下次查询时才会提示查询完毕(finished = true);但是查询本地会话时,当正好查询完所有本地数据时,当次查询时就会提示查询完毕(finished = true)。
参数说明
TypeScriptgetConversationList(offset: number, limit: number): Promise<V2NIMLocalConversationResult>
参数名称 | 类型 | 是否必填 | 默认值 | 说明 |
---|---|---|---|---|
offset |
Number | 是 | - | 分页偏移。首次调用传 0,后续调用时传入上一次调用返回的 offset 。 |
limit |
Number | 是 | - | 单页查询本地会话的数量,建议不超过 100。设置为小于或等于 0 则默认为 100。 |
示例代码
TypeScripttry {
const result = await nim.localConversationService.getConversationList(0, 100)
// success
} catch (err) {
// fail
}
返回值
Promise<V2NIMLocalConversationResult
> 分页查询本地会话列表结果
相关回调
无
getConversationListByOption
接口描述
根据指定的筛选条件分页查询本地会话列表。
该方法根据筛选条件从客户端本地分页获取会话数据,直到获取全量会话,SDK 会进行数据同步并返回对应回调通知 UI 层。
数据同步完成前,可能查询不到完整数据或者查询到的是老数据。
参数说明
TypeScriptgetConversationListByOption(offset: number, limit: number, option: V2NIMLocalConversationOption): Promise<V2NIMLocalConversationResult>
参数名称 | 类型 | 是否必填 | 默认值 | 说明 |
---|---|---|---|---|
offset |
Number | 是 | - | 分页偏移。首次调用传 0,后续调用时传入上一次调用返回的 offset 。 |
limit |
Number | 是 | - | 单页查询本地会话的数量,建议不超过 100。设置为小于或等于 0 则默认为 100。 |
option |
V2NIMLocalConversationOption |
是 | - | 查询的筛选条件,设置为空则查询所有本地会话列表,效果同 getConversationList 。 |
示例代码
TypeScriptlet offset: number = 0;
let limit: number = 100;
let option: V2NIMLocalConversationOption = {
conversationTypes: [V2NIMConversationType.V2NIM_CONVERSATION_TYPE_P2P]
}
try {
let result = await this.localConversationService.getConversationListByOption(offset, limit, option)
// success
} catch (e) {
// fail
}
返回值
Promise<V2NIMLocalConversationResult
> 分页查询本地会话列表结果
相关回调
无
getConversationListByIds
接口描述
根据会话 ID 批量查询指定的本地会话列表。
数据同步完成前,可能查询不到完整数据或者查询到的是老数据。
参数说明
TypeScriptgetConversationListByIds(conversationIds: string[]): Promise<V2NIMLocalConversation[]>
参数名称 | 类型 | 是否必填 | 默认值 | 说明 |
---|---|---|---|---|
conversationIds |
string[] | 是 | - | 本地会话 ID 列表,不可为空,否则返回 191004 参数错误。 |
示例代码
TypeScriptlet conversationIds: string[] = ["cjl|1|cjl1", "cjl|2|cjl2"];
try {
let result = await this.localConversationService.getConversationListByIds(conversationIds)
// success
} catch (e) {
// fail
}
返回值
Promise<V2NIMLocalConversation
[]> 本地会话列表
相关回调
无
updateConversationLocalExtension
接口描述
更新本地会话的本地扩展信息。
本地扩展字段更新后,SDK 会返回会话变更回调 onConversationChanged
,并同步更新缓存和数据库。
参数说明
TypeScriptupdateConversationLocalExtension(conversationId: string, localExtension: string): Promise<void>
参数名称 | 类型 | 是否必填 | 默认值 | 说明 |
---|---|---|---|---|
conversationId |
String | 是 | - | 本地会话 ID,如果为空、不合法、不存在则返回 191004 参数错误。 |
localExtension |
String | 是 | - | 需要更新的本地扩展字段,若为空,则表示不更新。 |
示例代码
TypeScriptlet conversationId: string = "cjl|1|cjl1"
let localExtension: string = "localExtension"
try {
await this.localConversationService.updateConversationLocalExtension(conversationId, localExtension)
// success
} catch (e) {
// fail
}
返回值
Promise<void>
相关回调
更新成功,返回 onConversationChanged
回调。
stickTopConversation
接口描述
置顶指定的本地会话。最多支持置顶 100 个本地会话。
置顶成功后,SDK 会返回会话变更回调 onConversationChanged
,并同步更新缓存和数据库。
置顶前请确保该本地会话已存在。
参数说明
TypeScriptstickTopConversation(conversationId: string, stickTop: boolean): Promise<void>
参数名称 | 类型 | 是否必填 | 默认值 | 说明 |
---|---|---|---|---|
conversationId |
String | 是 | - | 本地会话 ID,如果为空、不合法、不存在则返回 191004 参数错误。 |
stickTop |
Boolean | 是 | - | 是否置顶会话。true:置顶;false:取消置顶。 |
示例代码
TypeScriptlet conversationId: string = "cjl|1|cjl1"
let stickTop: boolean = true;
try {
await this.localConversationService.stickTopConversation(conversationId, stickTop)
// success
} catch (e) {
// fail
}
返回值
Promise<void>
相关回调
置顶成功,返回 onConversationChanged
回调。
getTotalUnreadCount
接口描述
获取所有本地会话的消息总未读数。
当消息未读数有任何变更,都会触发 onTotalUnreadCountChanged
回调。
- 数据同步完成前,可能查询不到完整数据或者查询到的是老数据。
- 该接口为同步接口。
参数说明
TypeScriptgetTotalUnreadCount(): number
无参数
示例代码
TypeScriptconst unreadCount: number = this.localConversationService.getTotalUnreadCount()
返回值
所有本地会话的消息总未读数
相关回调
当消息未读数有任何变更,返回 onTotalUnreadCountChanged
回调。
getUnreadCountByIds
接口描述
根据会话 ID 获取指定本地会话列表的消息总未读数。
返回的消息总未读数为所有合法会话的消息未读数的总和。
数据同步完成前,可能查询不到完整数据或者查询到的是老数据。
参数说明
TypeScriptgetUnreadCountByIds(conversationIds: string[]): Promise<number>
参数名称 | 类型 | 是否必填 | 默认值 | 说明 |
---|---|---|---|---|
conversationIds |
string[] | 是 | - | 本地会话 ID 列表,不可为空,否则返回 191004 参数错误。 |
示例代码
TypeScriptlet conversationIds: string[] = ["cjl|1|cjl1", "cjl|2|cjl2"];
try {
const unreadCount: number = await this.localConversationService.getUnreadCountByIds(conversationIds)
// success
} catch (e) {
// fail
}
返回值
Promise<number> 指定的本地会话列表的消息总未读数
相关回调
无
getUnreadCountByFilter
接口描述
根据过滤条件获取过滤后的所有本地会话列表的消息总未读数。
数据同步完成前,可能查询不到完整数据或者查询到的是老数据。
参数说明
TypeScriptgetUnreadCountByFilter(filter: V2NIMLocalConversationFilter): Promise<number>
参数名称 | 类型 | 是否必填 | 默认值 | 说明 |
---|---|---|---|---|
filter |
V2NIMLocalConversationFilter |
是 | - | 过滤条件配置,SDK 会按照该参数配置进行过滤,并返回过滤后的本地会话列表的消息总未读数。若为空,则返回参数错误,请直接调用 getTotalUnreadCount 方法实现。 |
示例代码
TypeScriptlet filter: V2NIMLocalConversationFilter = {
conversationTypes: [V2NIMConversationType.V2NIM_CONVERSATION_TYPE_P2P]
}
try {
let unreadCount: number = await this.localConversationService.getUnreadCountByFilter(filter)
// success
} catch (e) {
// fail
}
返回值
Promise<number> 过滤后的本地会话列表的消息总未读数
相关回调
无
clearTotalUnreadCount
接口描述
将所有本地会话的消息未读数清零。
清零成功后,SDK 返回 onTotalUnreadCountChanged
、onConversationChanged
和 onUnreadCountChangedByFilter
回调,并同步更新缓存数据库。
参数说明
TypeScriptclearTotalUnreadCount(): Promise<void>
无参数
示例代码
TypeScripttry {
await this.localConversationService.clearTotalUnreadCount()
// success
} catch (e) {
// fail
}
返回值
Promise<void>
相关回调
clearUnreadCountByIds
接口描述
根据会话 ID 将指定的本地会话列表的消息未读数清零。
清零成功后,SDK 返回 onTotalUnreadCountChanged
、onConversationChanged
和 onUnreadCountChangedByFilter
回调,并同步更新缓存和数据库。
参数说明
TypeScriptclearUnreadCountByIds(conversationIds: string[]): Promise<V2NIMLocalConversationOperationResult[]>
参数名称 | 类型 | 是否必填 | 默认值 | 说明 |
---|---|---|---|---|
conversationIds |
String[] | 是 | - | 本地会话 ID 列表。 |
示例代码
TypeScriptlet conversationIds: string[] = ["cjl|1|cjl1", "cjl|2|cjl2"];
try {
const deleteFailedConversationList: V2NIMLocalConversationOperationResult[] = await this.localConversationService.clearUnreadCountByIds(conversationIds)
if (deleteFailedConversationList && deleteFailedConversationList.length > 0) {
// partial success
} else {
// all success
}
} catch (e) {
// fail
}
返回值
Promise<V2NIMLocalConversationOperationResult
[]> 每个本地会话操作的返回对象
相关回调
clearUnreadCountByTypes
接口描述
将指定会话类型的所有本地会话消息未读数清零。
清零成功后,SDK 返回 onTotalUnreadCountChanged
、onConversationChanged
和 onUnreadCountChangedByFilter
回调,并同步更新缓存和数据库。
参数说明
TypeScriptclearUnreadCountByTypes(types: V2NIMConversationType[]): Promise<void>
参数名称 | 类型 | 是否必填 | 默认值 | 说明 |
---|---|---|---|---|
types |
V2NIMConversationType [] |
是 | - | 需要清除未读数的会话类型。 |
示例代码
TypeScriptlet conversationTypes:V2NIMConversationType[] = [V2NIMConversationType.V2NIM_CONVERSATION_TYPE_P2P]
try {
await this.localConversationService.clearUnreadCountByTypes(conversationTypes)
// success
} catch (e) {
// fail
}
返回值
Promise<void>
相关回调
subscribeUnreadCountByFilter
接口描述
订阅指定过滤条件过滤后的本地会话未读数变化。可按需多次调用该方法,订阅多个过滤器的本地会话未读数变化。
订阅成功后,当过滤后的本地会话未读数变化,SDK 返回 onUnreadCountChangedByFilter
回调。
该接口为同步接口。
参数说明
TypeScriptsubscribeUnreadCountByFilter(filter: V2NIMLocalConversationFilter): void
参数名称 | 类型 | 是否必填 | 默认值 | 说明 |
---|---|---|---|---|
filter |
V2NIMLocalConversationFilter |
是 | - | 本地会话过滤条件。 |
示例代码
TypeScriptconst filter: V2NIMLocalConversationFilter = {
conversationTypes: [V2NIMConversationType.V2NIM_CONVERSATION_TYPE_P2P]
}
try {
this.localConversationService.subscribeUnreadCountByFilter(filter)
// success
} catch (e) {
// fail
}
返回值
无
相关回调
订阅成功后,当订阅的本地会话消息未读数发生变更,返回 onUnreadCountChangedByFilter
回调。
unsubscribeUnreadCountByFilter
接口描述
取消订阅指定过滤条件过滤后的本地会话未读数变化。
该接口为同步接口。
参数说明
TypeScriptunsubscribeUnreadCountByFilter(filter: V2NIMLocalConversationFilter): void
参数名称 | 类型 | 是否必填 | 默认值 | 说明 |
---|---|---|---|---|
filter |
V2NIMLocalConversationFilter |
是 | - | 已订阅的本地会话过滤对象。如果该对象参数均为空,则返回 191004 错误码。 |
示例代码
TypeScriptconst filter: V2NIMLocalConversationFilter = {
conversationTypes: [V2NIMConversationType.V2NIM_CONVERSATION_TYPE_P2P]
}
try {
this.localConversationService.unsubscribeUnreadCountByFilter(filter)
// success
} catch (e) {
// fail
}
返回值
无
相关回调
无
markConversationRead
接口描述
标记本地会话已读时间戳。当前只支持 P2P,高级群,超大群会话类型。
标记成功后,SDK 会同步更新缓存和数据库。
参数说明
TypeScriptmarkConversationRead(conversationId: string): Promise<void>
参数名称 | 类型 | 是否必填 | 默认值 | 说明 |
---|---|---|---|---|
conversationId |
string | 是 | - | 本地会话 ID,如果为空、不合法、不存在则返回 191004 参数错误。 |
示例代码
TypeScriptawait this.localConversationService.markConversationRead('me|1|you')
返回值
Promise<void>
相关回调
无
getConversationReadTime
接口描述
获取指定本地会话的已读时间戳。
数据同步完成前,可能查询不到完整数据或者查询到的是老数据。
参数说明
TypeScriptgetConversationReadTime(conversationId: string): Promise<number>
参数名称 | 类型 | 是否必填 | 默认值 | 说明 |
---|---|---|---|---|
conversationId |
String | 是 | - | 本地会话 ID,如果为空、不合法、不存在则返回 191004 参数错误。 |
示例代码
TypeScriptawait this.localConversationService.getConversationReadTime('me|1|you')
返回值
Promise<number> 本地会话已读时间戳
相关回调
无