本地会话

更新时间: 2024/09/18 11:03:17

网易云信即时通讯 SDK(NetEase IM SDK,以下简称 NIM SDK)支持本地会话管理功能,包括创建、更新、删除本地会话等基础操作,以及置顶会话等进阶操作。

本地会话列表由 SDK 维护并提供查询、监听变化的接口,当会话变更时,SDK 会自动更新会话列表并通知,您无需手动更新。

如何实现本地会话相关功能请参考 本地会话管理。本文介绍 NIM SDK 本地会话相关 API。

支持平台

V10.x.x 系列 NIM SDK 本地会话功能,只支持 HarmonyOS 开发平台(自 HarmonyOS v1.3.0 起)。

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 会触发相关回调通知。

  • 建议在初始化后调用该方法。
  • 全局只需注册一次。
  • 该接口为同步接口。

参数说明

HarmonyOS
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 监听事件的回调函数。当事件触发时,会调用该函数进行处理。

    示例代码

    HarmonyOS
    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")

    接口描述

    取消注册本地会话相关监听。

    该接口为同步接口。

    参数说明

    HarmonyOS
    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 监听事件的回调函数。当事件触发时,会调用该函数进行处理。

    示例代码

    HarmonyOS
    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 会自动创建会话。

    参数说明

    HarmonyOS
    TypeScriptcreateConversation(conversationId: string): Promise<V2NIMLocalConversation>
    
    参数名称 类型 是否必填 说明
    conversationId String 本地会话 ID,通过调用 V2NIMConversationIdUtil 的对应函数创建。
  • 组成方式:用户账号(accountId)| 会话类型(V2NIMConversationType)| 聊天对象账号(accountId)或群组 ID。
  • 不可设置为空,否则返回 191004 参数错误。
  • 示例代码

    HarmonyOS
    TypeScriptlet conversationId: string = "cjl|1|cjl1";
    try {
      let conv = await this.localConversationService.createConversation(conversationId)
      // success
    } catch (e) {
      // fail
    }
    

    返回参数

    HarmonyOS

    Promise<V2NIMLocalConversation> 本地会话对象

    相关回调

    HarmonyOS

    创建成功,返回 onConversationCreated 回调。

    deleteConversation

    接口描述

    根据会话 ID 删除指定的本地会话。

    本端或多端同步删除成功后,SDK 会返回删除成功回调 onConversationDeleted,并同步更新缓存和数据库。

    如果被删除的本地会话中有消息未读,SDK 还会返回 onTotalUnreadCountChangedonUnreadCountChangedByFilter 回调。

    参数说明

    HarmonyOS
    TypeScriptdeleteConversation(conversationId: string, clearMessage?: boolean): Promise<void>
    
    参数名称 类型 是否必填 说明
    conversationId String 本地会话 ID,通过 用户账号(accountId)| 会话类型(V2NIMConversationType)| 聊天对象账号(accountId)或群组 ID 拼接而成。如果为空、不合法、不存在则返回 191004 参数错误。
    clearMessage Boolean 是否同步删除本地会话对应的历史消息。
  • true:清空本地历史消息。仅删除本地历史消息,非云端历史消息。若需要删除远端消息,可调用 V2NIMMessageService.clearHistoryMessage 方法实现。
  • false:只删除会话,保留历史消息。默认为 false。
  • 示例代码

    HarmonyOS
    TypeScriptlet conversationId: string = "cjl|1|cjl1";
    let clearMessage: boolean = true;
    try {
      await this.localConversationService.deleteConversation(conversationId, clearMessage)
      // success
    } catch (e) {
      // fail
    }
    

    返回参数

    HarmonyOS

    Promise<void>

    相关回调

    HarmonyOS

    删除成功,返回 onConversationDeleted 回调。可能返回 onTotalUnreadCountChangedonUnreadCountChangedByFilter 回调。

    deleteConversationListByIds

    接口描述

    根据会话 ID 批量删除指定的本地会话列表。

    本端或多端同步删除每一条本地会话成功后,SDK 均会返回删除成功回调 onConversationDeleted 回调,并同步更新缓存和数据库。

    如果被删除的本地会话中有消息未读,SDK 还会返回 onTotalUnreadCountChangedonUnreadCountChangedByFilter 回调。

    参数说明

    HarmonyOS
    TypeScriptdeleteConversationListByIds(conversationIds: string[], clearMessage?: boolean): Promise<V2NIMLocalConversationOperationResult[]>
    
    参数名称 类型 是否必填 说明
    conversationIds String[] 本地会话 ID 列表。
  • 不可为空,否则返回 191004 参数错误。
  • 单次最多删除 100 个本地会话。
  • clearMessage Boolean 是否同步删除本地会话对应的历史消息。
  • true:清空本地历史消息。仅删除本地历史消息,非云端历史消息。若需要删除远端消息,可调用 V2NIMMessageService.clearHistoryMessage 方法实现。
  • false:只删除会话,保留历史消息。默认为 false。
  • 示例代码

    HarmonyOS
    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
    }
    

    返回参数

    HarmonyOS

    Promise<V2NIMLocalConversationOperationResult[]> 每个本地会话操作的返回对象

    相关回调

    HarmonyOS

    每一条本地会话删除成功,均返回 onConversationDeleted 回调。可能返回 onTotalUnreadCountChangedonUnreadCountChangedByFilter 回调。

    getConversation

    接口描述

    根据会话 ID 获取单条本地会话。

    数据同步完成前,可能查询不到完整数据或者查询到的是老数据。

    参数说明

    HarmonyOS
    TypeScriptgetConversation(conversationId: string): Promise<V2NIMLocalConversation>
    
    参数名称 类型 是否必填 说明
    conversationId String 本地会话 ID,如果为空、不合法、不存在则返回 191004 参数错误。

    示例代码

    HarmonyOS
    TypeScriptlet conversationId: string = "cjl|1|cjl1";
    try {
      let conv = await this.localConversationService.getConversation(conversationId)
      // success
    } catch (e) {
      // fail
    }
    

    返回参数

    HarmonyOS

    Promise<V2NIMLocalConversation> 本地会话对象

    相关回调

    HarmonyOS

    无。

    getConversationList

    接口描述

    分页查询所有本地会话列表。

    该方法从客户端本地分页获取会话数据,本地历史会话数据无上限,因此建议分页多次获取,直到获取全量会话数据,SDK 会进行数据同步并返回对应回调通知 UI 层。

    • 查询的本地会话列表结果中,置顶会话排首位。
    • 数据同步完成前,可能查询不到完整数据或者查询到的是老数据。
    • 查询云端会话时,当正好查询完所有数据时,下次查询时才会提示查询完毕(finished = true)。但是查询本地会话时,当正好查询完所有本地数据时,当次查询时就会提示查询完毕(finished = true)。

    参数说明

    HarmonyOS
    TypeScriptgetConversationList(offset: number, limit: number): Promise<V2NIMLocalConversationResult>
    
    参数名称 类型 是否必填 说明
    offset Number 分页偏移。首次调用传 0,后续调用时传入上一次调用返回的 offset
    limit Number 单页查询本地会话的数量,建议不超过 100。设置为小于或等于 0 则默认为 100。

    示例代码

    HarmonyOS
    TypeScripttry {
      const result = await nim.localConversationService.getConversationList(0, 100)
      // success
    } catch (err) {
      // fail
    }
    

    返回参数

    HarmonyOS

    Promise<V2NIMLocalConversationResult> 分页查询本地会话列表结果

    相关回调

    HarmonyOS

    无。

    getConversationListByOption

    接口描述

    根据指定的筛选条件分页查询本地会话列表。

    该方法根据筛选条件从客户端本地分页获取会话数据,直到获取全量会话,SDK 会进行数据同步并返回对应回调通知 UI 层。

    数据同步完成前,可能查询不到完整数据或者查询到的是老数据。

    参数说明

    HarmonyOS
    TypeScriptgetConversationListByOption(offset: number, limit: number, option: V2NIMLocalConversationOption): Promise<V2NIMLocalConversationResult>
    
    参数名称 类型 是否必填 说明
    offset Number 分页偏移。首次调用传 0,后续调用时传入上一次调用返回的 offset
    limit Number 单页查询本地会话的数量,建议不超过 100。设置为小于或等于 0 则默认为 100。
    option V2NIMLocalConversationOption 查询的筛选条件,设置为空则查询所有本地会话列表,效果同 getConversationList

    示例代码

    HarmonyOS
    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
    }
    

    返回参数

    HarmonyOS

    Promise<V2NIMLocalConversationResult> 分页查询本地会话列表结果

    相关回调

    HarmonyOS

    无。

    getConversationListByIds

    接口描述

    根据会话 ID 批量查询指定的本地会话列表。

    数据同步完成前,可能查询不到完整数据或者查询到的是老数据。

    参数说明

    HarmonyOS
    TypeScriptgetConversationListByIds(conversationIds: string[]): Promise<V2NIMLocalConversation[]>
    
    参数名称 类型 是否必填 说明
    conversationIds string[] 本地会话 ID 列表,不可为空,否则返回 191004 参数错误。

    示例代码

    HarmonyOS
    TypeScriptlet conversationIds: string[] = ["cjl|1|cjl1", "cjl|2|cjl2"];
    try {
      let result = await this.localConversationService.getConversationListByIds(conversationIds)
      // success
    } catch (e) {
      // fail
    }
    

    返回参数

    HarmonyOS

    Promise<V2NIMLocalConversation[]> 本地会话列表

    相关回调

    HarmonyOS

    无。

    updateConversationLocalExtension

    接口描述

    更新本地会话的本地扩展信息。

    本地扩展字段更新后,SDK 会返回会话变更回调 onConversationChanged,并同步更新缓存和数据库。

    参数说明

    HarmonyOS
    TypeScriptupdateConversationLocalExtension(conversationId: string, localExtension: string): Promise<void>
    
    参数名称 类型 是否必填 说明
    conversationId String 本地会话 ID,如果为空、不合法、不存在则返回 191004 参数错误。
    localExtension String 需要更新的本地扩展字段,若为空,则表示不更新。

    示例代码

    HarmonyOS
    TypeScriptlet conversationId: string = "cjl|1|cjl1"
    let localExtension: string = "localExtension"
    try {
      await this.localConversationService.updateConversationLocalExtension(conversationId, localExtension)
      // success
    } catch (e) {
      // fail
    }
    

    返回参数

    HarmonyOS

    Promise<void>

    相关回调

    HarmonyOS

    更新成功,返回 onConversationChanged 回调。

    stickTopConversation

    接口描述

    置顶指定的本地会话。最多支持置顶 100 个本地会话。

    置顶成功后,SDK 会返回会话变更回调 onConversationChanged,并同步更新缓存和数据库。

    置顶前请确保该本地会话已存在。

    参数说明

    HarmonyOS
    TypeScriptstickTopConversation(conversationId: string, stickTop: boolean): Promise<void>
    
    参数名称 类型 是否必填 说明
    conversationId String 本地会话 ID,如果为空、不合法、不存在则返回 191004 参数错误。
    stickTop Boolean 是否置顶会话。true:置顶。false:取消置顶。默认为 false。

    示例代码

    HarmonyOS
    TypeScriptlet conversationId: string = "cjl|1|cjl1"
    let stickTop: boolean = true;
    try {
      await this.localConversationService.stickTopConversation(conversationId, stickTop)
      // success
    } catch (e) {
      // fail
    }
    

    返回参数

    HarmonyOS

    Promise<void>

    相关回调

    HarmonyOS

    置顶成功,返回 onConversationChanged 回调。

    getTotalUnreadCount

    接口描述

    获取所有本地会话的消息总未读数。

    当消息未读数有任何变更,都会触发 onTotalUnreadCountChanged 回调。

    • 数据同步完成前,可能查询不到完整数据或者查询到的是老数据。
    • 该接口为同步接口。

    参数说明

    HarmonyOS
    TypeScriptgetTotalUnreadCount(): number
    

    无参数。

    示例代码

    HarmonyOS
    TypeScriptconst unreadCount: number = this.localConversationService.getTotalUnreadCount()
    

    返回参数

    所有本地会话的消息总未读数。

    相关回调

    HarmonyOS

    当消息未读数有任何变更,返回 onTotalUnreadCountChanged 回调。

    getUnreadCountByIds

    接口描述

    根据会话 ID 获取指定本地会话列表的消息总未读数。

    返回的消息总未读数为所有合法会话的消息未读数的总和。

    数据同步完成前,可能查询不到完整数据或者查询到的是老数据。

    参数说明

    HarmonyOS
    TypeScriptgetUnreadCountByIds(conversationIds: string[]): Promise<number>
    
    参数名称 类型 是否必填 说明
    conversationIds string[] 本地会话 ID 列表,不可为空,否则返回 191004 参数错误。

    示例代码

    HarmonyOS
    TypeScriptlet conversationIds: string[] = ["cjl|1|cjl1", "cjl|2|cjl2"];
    try {
      const unreadCount: number = await this.localConversationService.getUnreadCountByIds(conversationIds)
      // success
    } catch (e) {
      // fail
    }
    

    返回参数

    HarmonyOS

    Promise<number> 指定的本地会话列表的消息总未读数

    相关回调

    HarmonyOS

    无。

    getUnreadCountByFilter

    接口描述

    根据过滤条件获取过滤后的所有本地会话列表的消息总未读数。

    数据同步完成前,可能查询不到完整数据或者查询到的是老数据。

    参数说明

    HarmonyOS
    TypeScriptgetUnreadCountByFilter(filter: V2NIMLocalConversationFilter): Promise<number>
    
    参数名称 类型 是否必填 说明
    filter V2NIMLocalConversationFilter 过滤条件配置,SDK 会按照该参数配置进行过滤,并返回过滤后的本地会话列表的消息总未读数。若为空,则返回参数错误,请直接调用 getTotalUnreadCount 方法实现。

    示例代码

    HarmonyOS
    TypeScriptlet filter: V2NIMLocalConversationFilter = {
      conversationTypes: [V2NIMConversationType.V2NIM_CONVERSATION_TYPE_P2P]
    }
    try {
      let unreadCount: number = await this.localConversationService.getUnreadCountByFilter(filter)
      // success
    } catch (e) {
      // fail
    }
    

    返回参数

    HarmonyOS

    Promise<number> 过滤后的本地会话列表的消息总未读数

    相关回调

    HarmonyOS

    无。

    clearTotalUnreadCount

    接口描述

    将所有本地会话的消息未读数清零。

    清零成功后,SDK 返回 onTotalUnreadCountChangedonConversationChangedonUnreadCountChangedByFilter 回调,并同步更新缓存数据库。

    参数说明

    HarmonyOS
    TypeScriptclearTotalUnreadCount(): Promise<void>
    

    无参数。

    示例代码

    HarmonyOS
    TypeScripttry {
      await this.localConversationService.clearTotalUnreadCount()
      // success
    } catch (e) {
      // fail
    }
    

    返回参数

    HarmonyOS

    Promise<void>

    相关回调

    HarmonyOS

    clearUnreadCountByIds

    接口描述

    根据会话 ID 将指定的本地会话列表的消息未读数清零。

    清零成功后,SDK 返回 onTotalUnreadCountChangedonConversationChangedonUnreadCountChangedByFilter 回调,并同步更新缓存和数据库。

    参数说明

    HarmonyOS
    TypeScriptclearUnreadCountByIds(conversationIds: string[]): Promise<V2NIMLocalConversationOperationResult[]>
    
    参数名称 类型 是否必填 说明
    conversationIds String[] 本地会话 ID 列表。
  • 不可为空,否则返回 191004 参数错误。
  • 单次最多清除 10 个本地会话的未读数。
  • 示例代码

    HarmonyOS
    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
    }
    

    返回参数

    HarmonyOS

    Promise<V2NIMLocalConversationOperationResult[]> 每个本地会话操作的返回对象

    相关回调

    HarmonyOS

    clearUnreadCountByTypes

    接口描述

    将指定会话类型的所有本地会话消息未读数清零。

    清零成功后,SDK 返回 onTotalUnreadCountChangedonConversationChangedonUnreadCountChangedByFilter 回调,并同步更新缓存和数据库。

    参数说明

    HarmonyOS
    TypeScriptclearUnreadCountByTypes(types: V2NIMConversationType[]): Promise<void>
    
    参数名称 类型 是否必填 说明
    types V2NIMConversationType[] 需要清除未读数的会话类型。

    示例代码

    HarmonyOS
    TypeScriptlet conversationTypes:V2NIMConversationType[] = [V2NIMConversationType.V2NIM_CONVERSATION_TYPE_P2P]
    try {
      await this.localConversationService.clearUnreadCountByTypes(conversationTypes)
      // success
    } catch (e) {
      // fail
    }
    

    返回参数

    HarmonyOS

    Promise<void>

    相关回调

    HarmonyOS

    subscribeUnreadCountByFilter

    接口描述

    订阅指定过滤条件过滤后的本地会话未读数变化。可按需多次调用该方法,订阅多个过滤器的本地会话未读数变化。

    订阅成功后,当过滤后的本地会话未读数变化,SDK 返回 onUnreadCountChangedByFilter 回调。

    该接口为同步接口。

    参数说明

    HarmonyOS
    TypeScriptsubscribeUnreadCountByFilter(filter: V2NIMLocalConversationFilter): void
    
    参数名称 类型 是否必填 说明
    filter V2NIMLocalConversationFilter 本地会话过滤条件。
  • 如果该对象参数均为空,则返回 191004 错误码。
  • 如果该对象只有单个参数生效,则返回参数对应的回调。
  • 如果该对象设置多个参数且生效,则返回参数对应的多个回调。如果设置多个参数但有参数错误未生效,则不触发任何回调。
  • 过滤器会去重。
  • 示例代码

    HarmonyOS
    TypeScriptconst filter: V2NIMLocalConversationFilter = {
      conversationTypes: [V2NIMConversationType.V2NIM_CONVERSATION_TYPE_P2P]
    }
    try {
      this.localConversationService.subscribeUnreadCountByFilter(filter)
      // success
    } catch (e) {
      // fail
    }
    

    返回参数

    无。

    相关回调

    HarmonyOS

    订阅成功后,当订阅的本地会话消息未读数发生变更,返回 onUnreadCountChangedByFilter 回调。

    unsubscribeUnreadCountByFilter

    接口描述

    取消订阅指定过滤条件过滤后的本地会话未读数变化。

    该接口为同步接口。

    参数说明

    HarmonyOS
    TypeScriptunsubscribeUnreadCountByFilter(filter: V2NIMLocalConversationFilter): void
    
    参数名称 类型 是否必填 说明
    filter V2NIMLocalConversationFilter 已订阅的本地会话过滤对象。如果该对象参数均为空,则返回 191004 错误码。

    示例代码

    HarmonyOS
    TypeScriptconst filter: V2NIMLocalConversationFilter = {
      conversationTypes: [V2NIMConversationType.V2NIM_CONVERSATION_TYPE_P2P]
    }
    try {
      this.localConversationService.unsubscribeUnreadCountByFilter(filter)
      // success
    } catch (e) {
      // fail
    }
    

    返回参数

    无。

    相关回调

    HarmonyOS

    无。

    markConversationRead

    接口描述

    标记本地会话已读时间戳。当前只支持 P2P,高级群,超大群会话类型。

    标记成功后,SDK 会同步更新缓存和数据库。

    参数说明

    HarmonyOS
    TypeScriptmarkConversationRead(conversationId: string): Promise<void>
    
    参数名称 类型 是否必填 说明
    conversationId string 本地会话 ID,如果为空、不合法、不存在则返回 191004 参数错误。

    示例代码

    HarmonyOS
    TypeScriptawait this.localConversationService.markConversationRead('me|1|you')
    

    返回参数

    HarmonyOS

    Promise<void>

    相关回调

    HarmonyOS

    无。

    getConversationReadTime

    接口描述

    获取指定本地会话的已读时间戳。

    数据同步完成前,可能查询不到完整数据或者查询到的是老数据。

    参数说明

    HarmonyOS
    TypeScriptgetConversationReadTime(conversationId: string): Promise<number>
    
    参数名称 类型 是否必填 说明
    conversationId String 本地会话 ID,如果为空、不合法、不存在则返回 191004 参数错误。

    示例代码

    HarmonyOS
    TypeScriptawait this.localConversationService.getConversationReadTime('me|1|you')
    

    返回参数

    HarmonyOS

    Promise<number> 本地会话已读时间戳

    相关回调

    HarmonyOS

    无。

    此文档是否对你有帮助?
    有帮助
    去反馈
    • 支持平台
    • API 概览
    • 本地会话监听
    • 本地会话操作
    • 本地会话未读数
    • 接口类
    • on("EventName")
    • off("EventName")
    • createConversation
    • deleteConversation
    • deleteConversationListByIds
    • getConversation
    • getConversationList
    • getConversationListByOption
    • getConversationListByIds
    • updateConversationLocalExtension
    • stickTopConversation
    • getTotalUnreadCount
    • getUnreadCountByIds
    • getUnreadCountByFilter
    • clearTotalUnreadCount
    • clearUnreadCountByIds
    • clearUnreadCountByTypes
    • subscribeUnreadCountByFilter
    • unsubscribeUnreadCountByFilter
    • markConversationRead
    • getConversationReadTime