本地会话

更新时间: 2025/10/16 14:33:15

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

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

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

支持平台

本文内容适用的开发平台或框架如下表所示:

Android iOS macOS/Windows Web/uni-app/小程序 Node.js/Electron HarmonyOS
✔️️ ✔️️ ✔️️ ️✔️ ✔️️ ✔️️

API 概览

本地会话监听

Android/iOS/macOS/Windows
API 说明 起始版本
addConversationListener 注册本地会话相关监听 v10.8.0
removeConversationListener 取消注册本地会话相关监听 v10.8.0
Web/uni-app/小程序/Node.js/Electron/HarmonyOS
API 说明 起始版本
on("EventName") 注册本地会话相关监听 v10.8.0(对应 HarmonyOS v1.3.0)
off("EventName") 取消注册本地会话相关监听 v10.8.0(对应 HarmonyOS v1.3.0)

本地会话操作

API 说明 起始版本
createConversation 创建一条空本地会话 v10.8.0(对应 HarmonyOS v1.3.0)
updateConversationLocalExtension 更新会话的本地扩展信息 v10.8.0(对应 HarmonyOS v1.3.0)
deleteConversation 删除一条本地会话 v10.8.0(对应 HarmonyOS v1.3.0)
deleteConversationListByIds 根据会话 ID 批量删除本地会话列表 v10.8.0(对应 HarmonyOS v1.3.0)
stickTopConversation 置顶本地会话 v10.8.0(对应 HarmonyOS v1.3.0)
getConversation 根据会话 ID 获取单条本地会话 v10.8.0(对应 HarmonyOS v1.3.0)
getConversationList 获取所有本地会话列表 v10.8.0(对应 HarmonyOS v1.3.0)
getConversationListByIds 根据会话 ID 批量获取本地会话列表 v10.8.0(对应 HarmonyOS v1.3.0)
getConversationListByOption 根据指定的筛选条件获取本地会话列表 v10.8.0(对应 HarmonyOS v1.3.0)
getStickTopConversationList 查询当前置顶的全量本地会话列表
  • Android/iOS/Web/HarmonyOS:v10.9.0
  • macOS/Windows/Electron:v10.9.10
setCurrentConversation 设置当前正在聊天的会话。 v10.9.40
getMessageListByServerIds 根据消息 ID 列表在本地数据库中查询消息。(仅 HarmonyOS) v10.9.40

本地会话未读数

API 说明 起始版本
getTotalUnreadCount 获取全部本地会话的消息总未读数 v10.8.0(对应 HarmonyOS v1.3.0)
getUnreadCountByIds 根据会话 ID 获取指定本地会话的消息总未读数 v10.8.0(对应 HarmonyOS v1.3.0)
getUnreadCountByFilter 根据过滤参数获取相应的消息未读数 v10.8.0(对应 HarmonyOS v1.3.0)
clearTotalUnreadCount 清除所有本地会话的消息总未读数 v10.8.0(对应 HarmonyOS v1.3.0)
clearUnreadCountByIds 根据会话 ID 清除指定本地会话列表的消息未读数 v10.8.0(对应 HarmonyOS v1.3.0)
clearUnreadCountByTypes 根据会话类型清除指定本地会话类型的消息未读数 v10.8.0(对应 HarmonyOS v1.3.0)
subscribeUnreadCountByFilter 订阅指定过滤条件的本地会话消息未读数变化 v10.8.0(对应 HarmonyOS v1.3.0)
unsubscribeUnreadCountByFilter 取消订阅指定过滤条件的本地会话消息未读数变化 v10.8.0(对应 HarmonyOS v1.3.0)
markConversationRead 标记本地会话已读时间戳 v10.8.0(对应 HarmonyOS v1.3.0)
getConversationReadTime 获取本地会话已读时间戳 v10.8.0(对应 HarmonyOS v1.3.0)

接口类

V2NIMLocalConversationService 类提供创建、删除、更新、获取、置顶本地会话,本地会话消息未读数相关、注册本地会话监听等接口。

addConversationListener

接口描述

注册本地会话监听器。

注册成功后,当事件发生时,SDK 会返回对应的回调。

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

参数说明

Android
Javavoid addConversationListener(@NonNull V2NIMLocalConversationListener listener);
参数名称 类型 是否必填 说明
listener V2NIMLocalConversationListener 本地会话相关监听器
iOS
Objective-C- (void)addConversationListener:(id<V2NIMLocalConversationListener>)listener;
参数名称 类型 是否必填 说明
listener V2NIMLocalConversationListener 本地会话相关监听器
macOS/Windows
C++virtual void addConversationListener(const V2NIMLocalConversationListener& listener) = 0;
参数名称 类型 是否必填 说明
listener V2NIMLocalConversationListener 本地会话相关监听器

示例代码

Android
JavaV2NIMLocalConversationListener listener = new V2NIMLocalConversationListener() {
  @Override
  public void onSyncStarted() {  
  }
  @Override
  public void onSyncFinished() {
  }
  @Override
  public void onSyncFailed(V2NIMError error) {
  }
  @Override
  public void onConversationCreated(V2NIMLocalConversation conversation) {
  }
  @Override
  public void onConversationDeleted(List<String> conversationIds) {
  }
  @Override
  public void onConversationChanged(List<V2NIMLocalConversation> conversationList) {
  }
  @Override
  public void onTotalUnreadCountChanged(int unreadCount) {
  }
  @Override
  public void onUnreadCountChangedByFilter(V2NIMLocalConversationFilter filter, int unreadCount) {
  }
  @Override
  public void onConversationReadTimeUpdated(String conversationId, long readTime) {
  }
};
NIMClient.getService(V2NIMLocalConversationService.class).addConversationListener(listener);
iOS
Objective-C@interface SampleCode : NSObject<V2NIMLocalConversationListener>
@end

@implementation SampleCode
- (void)onSyncStarted
{  
}
- (void)onSyncFinished
{
}
/**
 * @param error 会话数据云端同步失败,可能为如下原因:网络连接断开;服务异常。可以根据相应错误码确定相关错误原因
 */
- (void)onSyncFailed:(V2NIMError *)error
{
}
- (void)onConversationCreated:(V2NIMLocalConversation *)conversation
{
}
/**
 * @param conversationIds 被删除的会话ID列表,可以根据该ID列表移除界面上展示的会话数据
 */
- (void)onConversationDeleted:(NSArray<NSString *> *)conversationIds
{
}
- (void)onConversationChanged:(NSArray<V2NIMLocalConversation *> *)conversationList
{
}
- (void)onTotalUnreadCountChanged:(NSInteger)unreadCount
{ 
}
- (void)onUnreadCountChangedByFilter:(V2NIMLocalConversationFilter *)filter
                         unreadCount:(NSInteger)unreadCount
{  
}
- (void)onConversationReadTimeUpdated:(NSString *)conversationId
                             readTime:(NSTimeInterval)readTime
{ 
}
- (void)addListener
{
    [[NIMSDK sharedSDK].v2LocalConversationService addConversationListener:self];
}
- (void)removeListener
{
    [[NIMSDK sharedSDK].v2LocalConversationService removeConversationListener:self];
}
@end
macOS/Windows
C++V2NIMLocalConversationListener listener;
listener.onSyncStarted = []() {
    // handle conversation sync start event
};
listener.onSyncFinished = []() {
    // handle conversation sync finish event
};
listener.onSyncFailed = [](V2NIMError error) {
    // handle conversation sync failed event
};
listener.onConversationCreated = [](V2NIMLocalConversation conversation) {
    // handle conversation created event
};
listener.onConversationDeleted = [](nstd::vector<nstd::string> conversationIds) {
    // handle conversation deleted event
};
listener.onConversationChanged = [](nstd::vector<V2NIMLocalConversation> conversationList) {
    // handle conversation changed event
};
listener.onTotalUnreadCountChanged = [](uint32_t unreadCount) {
    // handle total unread count changed event
};
listener.onUnreadCountChangedByFilter = [](V2NIMLocalConversationFilter filter, uint32_t unreadCount) {
    // handle unread count changed by group event
};
localConversationService.addConversationListener(listener);

返回参数

无。

removeConversationListener

接口描述

取消注册本地会话监听器。

参数说明

Android
Javavoid removeConversationListener(@NonNull V2NIMLocalConversationListener listener);
参数名称 类型 是否必填 说明
listener V2NIMLocalConversationListener 本地会话相关监听器
iOS
Objective-C- (void)removeConversationListener:(id<V2NIMLocalConversationListener>)listener;
参数名称 类型 是否必填 说明
listener V2NIMLocalConversationListener 本地会话相关监听器
macOS/Windows
C++virtual void removeConversationListener(const V2NIMLocalConversationListener& listener) = 0;
参数名称 类型 是否必填 说明
listener V2NIMLocalConversationListener 本地会话相关监听器

示例代码

Android
JavaNIMClient.getService(V2NIMLocalConversationService.class).removeConversationListener(listener);
iOS
Objective-Cid<V2NIMLocalConversationListener> listener;
[NIMSDK.sharedSDK.v2LocalConversationService removeConversationListener:listener];
macOS/Windows
C++V2NIMLocalConversationListener listener;
// ...
localConversationService.addConversationListener(listener);
// ...
localConversationService.removeConversationListener(listener);

返回参数

无。

on("EventName")

接口描述

注册本地会话相关监听。

注册成功后,当事件发生时,SDK 会触发相关回调通知。

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

参数说明

Web/uni-app/小程序
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 监听事件的回调函数。当事件触发时,会调用该函数进行处理。
Node.js/Electron
TypeScriptexport interface NIMEBaseServiceInterface<I extends NIMEBaseListener> {
  on<T extends keyof I>(eventName: T, fn: (...args: I[T]) => void): void
  once<T extends keyof I>(eventName: T, fn: (...args: I[T]) => void): void
  off<T extends keyof I>(eventName: T, fn: (...args: I[T]) => void): void
  removeAllListeners<T extends keyof I>(eventName?: T): void
}
参数名称 类型 是否必填 说明
eventName T 事件名称:
  • syncStarted:数据同步开始回调。建议在回调完成后操作数据,如果在此期间操作数据,会出现数据不全,只能操作部分数据的情况。
  • syncFinished:数据同步结束回调。此回调后需要用户重新获取本地会话列表。回调后可任意操作相关的本地会话数据。
  • syncFailed:数据同步失败回调。此回调后可以操作本地会话数据,但由于同步失败,本地只能操作已有数据,数据可能不全。在相关错误恢复后,SDK 会逐步按需重建会话数据。
  • conversationCreated:本地会话创建回调,返回创建的本地会话对象。当本端或多端同步主动创建本地会话成功时会触发该回调。
  • conversationDeleted:本地会话删除回调,返回被删除的本地会话 ID 列表。当本端或多端同步主动删除本地会话成功时会触发该回调。
  • conversationChanged:本地会话变更回调,返回变更后的会话列表。当本端或多端同步调用会话置顶、免打扰、更新消息内容成功时会触发该回调。
  • totalUnreadCountChanged:本地会话消息总未读数变更回调,返回变更后的消息未读数。
  • unreadCountChangedByFilter:指定过滤条件的会话消息未读数变更,根据过滤条件返回变更后的消息未读数。
  • conversationReadTimeUpdated:同一账号多端登录会话已读时间戳标记时间变更回调,返回同步标记的会话 ID 和标记的时间戳。
fn function 监听事件的回调函数。当事件触发时,会调用该函数进行处理。
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 监听事件的回调函数。当事件触发时,会调用该函数进行处理。

示例代码

Web/uni-app/小程序
TypeScriptnim.V2NIMLocalConversationService.on("onSyncStarted", () => {});
nim.V2NIMLocalConversationService.on("onSyncFinished", () => {});
nim.V2NIMLocalConversationService.on("onSyncFailed", (err) => {});
nim.V2NIMLocalConversationService.on("onConversationCreated", (conversation: V2NIMLocalConversation) => {});
nim.V2NIMLocalConversationService.on("onConversationDeleted", (conversationIds: string[]) => {});
nim.V2NIMLocalConversationService.on("onConversationChanged", (conversationList: V2NIMLocalConversation[]) => {});
nim.V2NIMLocalConversationService.on("onTotalUnreadCountChanged", (unreadCount: number) => {});
nim.V2NIMLocalConversationService.on("onUnreadCountChangedByFilter", (filter: V2NIMLocalConversationFilter, unreadCount: number) => {});
nim.V2NIMLocalConversationService.on("onConversationReadTimeUpdated", (conversationId: string, readTime: number) => {});
Node.js/Electron
TypeScriptv2.localConversationService.on("syncStarted", function () {});
v2.localConversationService.on("syncFinished", function () {});
v2.localConversationService.on("syncFailed", function (err) {});
v2.localConversationService.on("conversationCreated", function (conversation: V2NIMLocalConversation) {});
v2.localConversationService.on("conversationDeleted", function (conversationIds: string[]) {});
v2.localConversationService.on("conversationChanged", function (conversationList: V2NIMLocalConversation[]) {});
v2.localConversationService.on("totalUnreadCountChanged", function (unreadCount: number) {});
v2.localConversationService.on("unreadCountChangedByFilter", function (filter: V2NIMLocalConversationFilter, unreadCount: number) {});
v2.localConversationService.on("conversationReadTimeUpdated", function (conversationId: string, readTime: number) {});
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: V2NIMLocalConversationFilter, unreadCount: number) => {});
nim.localConversationService.on("onConversationReadTimeUpdated", (conversationId: string, readTime: number) => {});

返回参数

无。

off("EventName")

接口描述

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

该接口为同步接口。

参数说明

Web/uni-app/小程序
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 监听事件的回调函数。当事件触发时,会调用该函数进行处理。
Node.js/Electron
TypeScriptexport interface NIMEBaseServiceInterface<I extends NIMEBaseListener> {
  on<T extends keyof I>(eventName: T, fn: (...args: I[T]) => void): void
  once<T extends keyof I>(eventName: T, fn: (...args: I[T]) => void): void
  off<T extends keyof I>(eventName: T, fn: (...args: I[T]) => void): void
  removeAllListeners<T extends keyof I>(eventName?: T): void
}
参数名称 类型 是否必填 说明
eventName T 事件名称:
  • syncStarted:数据同步开始回调。建议在回调完成后操作数据,如果在此期间操作数据,会出现数据不全,只能操作部分数据的情况。
  • syncFinished:数据同步结束回调。此回调后需要用户重新获取本地会话列表。回调后可任意操作相关的本地会话数据。
  • syncFailed:数据同步失败回调。此回调后可以操作本地会话数据,但由于同步失败,本地只能操作已有数据,数据可能不全。在相关错误恢复后,SDK 会逐步按需重建会话数据。
  • conversationCreated:本地会话创建回调,返回创建的本地会话对象。当本端或多端同步主动创建本地会话成功时会触发该回调。
  • conversationDeleted:本地会话删除回调,返回被删除的本地会话 ID 列表。当本端或多端同步主动删除本地会话成功时会触发该回调。
  • conversationChanged:本地会话变更回调,返回变更后的会话列表。当本端或多端同步调用会话置顶、免打扰、更新消息内容成功时会触发该回调。
  • totalUnreadCountChanged:本地会话消息总未读数变更回调,返回变更后的消息未读数。
  • unreadCountChangedByFilter:指定过滤条件的会话消息未读数变更,根据过滤条件返回变更后的消息未读数。
  • conversationReadTimeUpdated:同一账号多端登录会话已读时间戳标记时间变更回调,返回同步标记的会话 ID 和标记的时间戳。
fn function 监听事件的回调函数。当事件触发时,会调用该函数进行处理。
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 监听事件的回调函数。当事件触发时,会调用该函数进行处理。

示例代码

Web/uni-app/小程序
TypeScriptnim.V2NIMLocalConversationService.off("onSyncStarted", theListner)
nim.V2NIMLocalConversationService.off("onSyncFinished", theListner)
nim.V2NIMLocalConversationService.off("onSyncFailed", theListner)
nim.V2NIMLocalConversationService.off("onConversationCreated", theListner)
nim.V2NIMLocalConversationService.off("onConversationDeleted", theListner)
nim.V2NIMLocalConversationService.off("onConversationChanged", theListner)
nim.V2NIMLocalConversationService.off("onTotalUnreadCountChanged", theListner)
nim.V2NIMLocalConversationService.off("onUnreadCountChangedByFilter", theListner)
nim.V2NIMLocalConversationService.off("onConversationReadTimeUpdated", theListner)
// remove all listeners
nim.localConversationService.removeAllListeners()
Node.js/Electron
TypeScriptv2.localConversationService.off("syncStarted")
v2.localConversationService.off("syncFinished")
v2.localConversationService.off("syncFailed")
v2.localConversationService.off("conversationCreated")
v2.localConversationService.off("conversationDeleted")
v2.localConversationService.off("conversationChanged")
v2.localConversationService.off("totalUnreadCountChanged")
v2.localConversationService.off("unreadCountChangedByFilter")
v2.localConversationService.off("conversationReadTimeUpdated")
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 会自动创建会话。

参数说明

Android
Javavoid createConversation(@NonNull String conversationId, V2NIMSuccessCallback<V2NIMLocalConversation> success, V2NIMFailureCallback failure);
参数名称 类型 是否必填 说明
conversationId String 本地会话 ID,通过调用 V2NIMConversationIdUtil 的对应函数创建。
  • 组成方式:用户账号(accountId)| 会话类型(V2NIMConversationType)| 聊天对象账号(accountId)或群组 ID。
  • 不可设置为空,否则返回 191004 参数错误。
success V2NIMSuccessCallback 创建本地会话成功回调,返回 V2NIMLocalConversation
failure V2NIMFailureCallback 创建本地会话失败回调,返回 错误码
iOS
Objective-C- (void)createConversation:(NSString *)conversationId
                   success:(V2NIMLocalConversationCallback)success
                   failure:(V2NIMFailureCallback)failure;
参数名称 类型 是否必填 说明
conversationId NSString 本地会话 ID,通过调用 V2NIMConversationIdUtil 的对应函数创建。
  • 组成方式:用户账号(accountId)| 会话类型(V2NIMConversationType)| 聊天对象账号(accountId)或群组 ID。
  • 不可设置为空,否则返回 191004 参数错误。
success V2NIMLocalConversationCallback 创建本地会话成功回调,可自定义。
failure V2NIMFailureCallback 创建本地会话失败回调,返回 错误码
macOS/Windows
C++virtual void createConversation(const nstd::string& conversationId,
    const V2NIMSuccessCallback<const V2NIMLocalConversation&>& success,
    const V2NIMFailureCallback& failure) = 0;
参数名称 类型 是否必填 说明
conversationId nstd::string 本地会话 ID,通过调用 V2NIMConversationIdUtil 的对应函数创建。
  • 组成方式:用户账号(accountId)| 会话类型(V2NIMConversationType)| 聊天对象账号(accountId)或群组 ID。
  • 不可设置为空,否则返回 191004 参数错误。
success V2NIMSuccessCallback 创建本地会话成功回调,返回 V2NIMLocalConversation
failure V2NIMFailureCallback 创建本地会话失败回调,返回 错误码
Web/uni-app/小程序
TypeScriptcreateConversation(conversationId: string): Promise<V2NIMLocalConversation>
参数名称 类型 是否必填 说明
conversationId string 本地会话 ID,通过调用 V2NIMConversationIdUtil 的对应函数创建。
  • 组成方式:用户账号(accountId)| 会话类型(V2NIMConversationType)| 聊天对象账号(accountId)或群组 ID。
  • 不可设置为空,否则返回 191004 参数错误。
Node.js/Electron
TypeScriptcreateConversation(conversationId): Promise<V2NIMLocalConversation>
参数名称 类型 是否必填 说明
conversationId string 本地会话 ID,通过调用 V2NIMConversationIdUtil 的对应函数创建。
  • 组成方式:用户账号(accountId)| 会话类型(V2NIMConversationType)| 聊天对象账号(accountId)或群组 ID。
  • 不可设置为空,否则返回 191004 参数错误。
HarmonyOS
TypeScriptcreateConversation(conversationId: string): Promise<V2NIMLocalConversation>
参数名称 类型 是否必填 说明
conversationId String 本地会话 ID,通过调用 V2NIMConversationIdUtil 的对应函数创建。
  • 组成方式:用户账号(accountId)| 会话类型(V2NIMConversationType)| 聊天对象账号(accountId)或群组 ID。
  • 不可设置为空,否则返回 191004 参数错误。

示例代码

Android
JavaString conversationId = "cjl|1|cjl1";
NIMClient.getService(V2NIMLocalConversationService.class).createConversation(conversationId, new V2NIMSuccessCallback<V2NIMLocalConversation>() {
  @Override
  public void onSuccess(V2NIMLocalConversation result) {
   // 创建成功
  }
}, new V2NIMFailureCallback() {
  @Override
  public void onFailure(V2NIMError error) {
   // 创建失败
  }
});
iOS
Objective-CNSString *conversationId = @"cjl|1|cjl1";
[[NIMSDK sharedSDK].v2LocalConversationService createConversation:conversationId
                                                          success:^(V2NIMLocalConversation *result) {
    // 创建成功
} failure:^(V2NIMError *error) {
    // 创建失败
}];
macOS/Windows
C++auto conversationId = V2NIMConversationIdUtil::p2pConversationId("account1");
localConversationService.createConversation(
    conversationId,
    [](V2NIMLocalConversation conversation) {
        // create succeeded
    },
    [](V2NIMError error) {
        // create failed, handle error
    });
Web/uni-app/小程序
TypeScriptconst datas = await nim.V2NIMLocalConversationService.createConversation("CONVERSATION_ID")
Node.js/Electron
TypeScriptconst conversation = await v2.localConversationService.createConversation('conversation1')
HarmonyOS
TypeScriptlet conversationId: string = "cjl|1|cjl1";
try {
  let conv = await this.localConversationService.createConversation(conversationId)
  // success
} catch (e) {
  // fail
}

返回参数

Android/iOS/macOS/Windows

无返回值。

Web/uni-app/小程序/Node.js/Electron/HarmonyOS

Promise<V2NIMLocalConversation> 本地会话对象

相关回调

Android/iOS/macOS/Windows
  • 请求成功,返回 V2NIMSuccessCallback 回调。创建成功,返回 onConversationCreated 回调。
  • 请求失败,返回 V2NIMFailuerCallback 回调,包含会话相关错误码。
iOS
  • 请求成功,返回 V2NIMLocalConversationCallback 回调,可自定义设置。创建成功,返回 onConversationCreated 回调。
  • 请求失败,返回 V2NIMFailuerCallback 回调,包含会话相关错误码。
Web/uni-app/小程序/HarmonyOS

创建成功,返回 onConversationCreated 回调。

Node.js/Electron

创建成功,返回 conversationCreated 回调。

deleteConversation

接口描述

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

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

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

参数说明

Android
Javavoid deleteConversation(@NonNull String conversationId, boolean clearMessage, V2NIMSuccessCallback<Void> success, V2NIMFailureCallback failure);
参数名称 类型 是否必填 说明
conversationId String 会话 ID,如果为空、不合法、不存在则返回 191004 参数错误。
clearMessage boolean 是否删除本地会话对应的本地历史消息。
  • true:清空本地历史消息。不清空云端历史消息,若需要删除云端历史消息,请使用 clearHistoryMessage 方法。
  • false(默认值):只删除本地会话,保留历史消息。
success V2NIMSuccessCallback 删除本地会话成功回调。
failure V2NIMFailureCallback 删除本地会话失败回调,返回 错误码
iOS
Objective-C- (void)deleteConversation:(NSString *)conversationId
              clearMessage:(BOOL)clearMessage
                   success:(V2NIMSuccessCallback)success
                   failure:(V2NIMFailureCallback)failure;
参数名称 类型 是否必填 说明
conversationId NSString 会话 ID,如果为空、不合法、不存在则返回 191004 参数错误。
clearMessage BOOL 是否删除本地会话对应的本地历史消息。
  • true:清空本地历史消息。不清空云端历史消息,若需要删除云端历史消息,请使用 clearHistoryMessage 方法。
  • false(默认值):只删除本地会话,保留历史消息。
success V2NIMSuccessCallback 删除本地会话成功回调。
failure V2NIMFailureCallback 删除本地会话失败回调,返回 错误码
macOS/Windows
C++virtual void deleteConversation(const nstd::string& conversationId,
    bool clearMessage,
    const V2NIMSuccessCallback<void>& success,
    const V2NIMFailureCallback& failure) = 0;
参数名称 类型 是否必填 说明
conversationId nstd::string 会话 ID,如果为空、不合法、不存在则返回 191004 参数错误。
clearMessage bool 是否删除本地会话对应的本地历史消息。
  • true:清空本地历史消息。不清空云端历史消息,若需要删除云端历史消息,请使用 clearHistoryMessage 方法。
  • false(默认值):只删除本地会话,保留历史消息。
success V2NIMSuccessCallback 删除本地会话成功回调。
failure V2NIMFailureCallback 删除本地会话失败回调,返回 错误码
Web/uni-app/小程序
TypeScriptdeleteConversation(conversationId: string, clearMessage?: boolean): Promise<void>
参数名称 类型 是否必填 说明
conversationId string 会话 ID,如果为空、不合法、不存在则返回 191004 参数错误。
clearMessage boolean 是否删除本地会话对应的本地历史消息。
  • true:清空本地历史消息。不清空云端历史消息,若需要删除云端历史消息,请使用 clearHistoryMessage 方法。
  • false(默认值):只删除本地会话,保留历史消息。
Node.js/Electron
TypeScriptdeleteConversation(conversationId, clearMessage): Promise<void>
参数名称 类型 是否必填 说明
conversationId string 会话 ID,如果为空、不合法、不存在则返回 191004 参数错误。
clearMessage boolean 是否删除本地会话对应的本地历史消息。
  • true:清空本地历史消息。不清空云端历史消息,若需要删除云端历史消息,请使用 clearHistoryMessage 方法。
  • false(默认值):只删除本地会话,保留历史消息。
HarmonyOS
TypeScriptdeleteConversation(conversationId: string, clearMessage?: boolean): Promise<void>
参数名称 类型 是否必填 说明
conversationId string 会话 ID,如果为空、不合法、不存在则返回 191004 参数错误。
clearMessage boolean 是否删除本地会话对应的本地历史消息。
  • true:清空本地历史消息。不清空云端历史消息,若需要删除云端历史消息,请使用 clearHistoryMessage 方法。
  • false(默认值):只删除本地会话,保留历史消息。

示例代码

Android
JavaString conversationId = "cjl|1|cjl1";
//是否清空消息记录
boolean clearMessage = true;
NIMClient.getService(V2NIMLocalConversationService.class).deleteConversation(conversationId, clearMessage, new V2NIMSuccessCallback<Void>() {
  @Override
  public void onSuccess(Void result) {
   // 删除成功
  }
}, new V2NIMFailureCallback() {
  @Override
  public void onFailure(V2NIMError error) {
   // 删除失败
  }
});
iOS
Objective-CNSString *conversationId = @"cjl|1|cjl1";
// 是否清空消息记录
BOOL clearMessage = YES;
[[NIMSDK sharedSDK].v2LocalConversationService deleteConversation:conversationId
                                                     clearMessage:clearMessage
                                                          success:^() {
    // 删除成功
} failure:^(V2NIMError *error) {
    // 删除失败
}];
macOS/Windows
C++auto conversationId = V2NIMConversationIdUtil::p2pConversationId("account1");
localConversationService.deleteConversation(
    conversationId,
    true,
    []() {
        // delete succeeded
    },
    [](V2NIMError error) {
        // delete failed, handle error
    });
Web/uni-app/小程序
TypeScriptawait nim.V2NIMLocalConversationService.deleteConversation("CONVERSATION_ID", true)
Node.js/Electron
TypeScriptawait v2.localConversationService.deleteConversation('conversation1', true)
HarmonyOS
TypeScriptlet conversationId: string = "cjl|1|cjl1";
let clearMessage: boolean = true;
try {
  await this.localConversationService.deleteConversation(conversationId, clearMessage)
  // success
} catch (e) {
  // fail
}

返回参数

Android/iOS/macOS/Windows

无返回值。

Web/uni-app/小程序/Node.js/Electron/HarmonyOS

Promise<void>

相关回调

Android/iOS/macOS/Windows
  • 请求成功,返回 V2NIMSuccessCallback 回调。删除成功,返回 onConversationDeleted 回调。可能返回 onTotalUnreadCountChangedonUnreadCountChangedByFilter 回调。
  • 请求失败,返回 V2NIMFailuerCallback 回调,包含会话相关错误码。
Web/uni-app/小程序/HarmonyOS

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

Node.js/Electron

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

deleteConversationListByIds

接口描述

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

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

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

参数说明

Android
Javavoid deleteConversationListByIds(@NonNull List<String> conversationIds, boolean clearMessage, V2NIMSuccessCallback<List<V2NIMLocalConversationOperationResult>> success,
   V2NIMFailureCallback failure);
参数名称 类型 是否必填 说明
conversationIds List<String> 会话 ID 列表。单次调用上限为 100 条。
不可为空,否则返回 191004 参数错误。
clearMessage boolean 是否删除本地会话对应的本地历史消息。
  • true:清空本地历史消息。不清空云端历史消息,若需要删除云端历史消息,请使用 clearHistoryMessage 方法。
  • false(默认值):只删除本地会话,保留历史消息。
success V2NIMSuccessCallback 删除本地会话成功回调,返回 V2NIMLocalConversationOperationResult,仅包含删除失败的会话 ID 及相关错误。
failure V2NIMFailureCallback 删除本地会话失败回调,返回 错误码
iOS
Objective-C- (void)deleteConversationListByIds:(NSArray<NSString *> *)conversationIds
                       clearMessage:(BOOL)clearMessage
                            success:(V2NIMLocalConversationOperationResultListCallback)success
                            failure:(V2NIMFailureCallback)failure;
参数名称 类型 是否必填 说明
conversationIds NSArray<NSString *> 会话 ID 列表。单次调用上限为 100 条。
不可为空,否则返回 191004 参数错误。
clearMessage BOOL 是否删除本地会话对应的本地历史消息。
  • true:清空本地历史消息。不清空云端历史消息,若需要删除云端历史消息,请使用 clearHistoryMessage 方法。
  • false(默认值):只删除本地会话,保留历史消息。
success V2NIMLocalConversationOperationResultListCallback 删除本地会话成功回调,可自定义设置。
failure V2NIMFailureCallback 删除本地会话失败回调,返回 错误码
macOS/Windows
C++virtual void deleteConversationListByIds(const nstd::vector<nstd::string>& conversationIds,
    bool clearMessage,
    const V2NIMSuccessCallback<const nstd::vector<V2NIMLocalConversationOperationResult>&>& success,
    const V2NIMFailureCallback& failure) = 0;
参数名称 类型 是否必填 说明
conversationIds nstd::vector<nstd::string> 会话 ID 列表。单次调用上限为 100 条。
不可为空,否则返回 191004 参数错误。
clearMessage bool 是否删除本地会话对应的本地历史消息。
  • true:清空本地历史消息。不清空云端历史消息,若需要删除云端历史消息,请使用 clearHistoryMessage 方法。
  • false(默认值):只删除本地会话,保留历史消息。
success V2NIMSuccessCallback 删除本地会话成功回调,返回 V2NIMLocalConversationOperationResult,仅包含删除失败的会话 ID 及相关错误码。
failure V2NIMFailureCallback 删除本地会话失败回调,返回 错误码
Web/uni-app/小程序
TypeScriptdeleteConversationListByIds(conversationIds: string[], clearMessage?: boolean): Promise<V2NIMLocalConversationOperationResult[]>
参数名称 类型 是否必填 说明
conversationIds string[] 会话 ID 列表。单次调用上限为 100 条。
不可为空,否则返回 191004 参数错误。
clearMessage boolean 是否删除本地会话对应的本地历史消息。
  • true:清空本地历史消息。不清空云端历史消息,若需要删除云端历史消息,请使用 clearHistoryMessage 方法。
  • false(默认值):只删除本地会话,保留历史消息。
Node.js/Electron
TypeScriptdeleteConversationListByIds(conversationIds, clearMessage): Promise<V2NIMLocalConversationOperationResult[]>
参数名称 类型 是否必填 说明
conversationIds string[] 会话 ID 列表。单次调用上限为 100 条。
不可为空,否则返回 191004 参数错误。
clearMessage boolean 是否删除本地会话对应的本地历史消息。
  • true:清空本地历史消息。不清空云端历史消息,若需要删除云端历史消息,请使用 clearHistoryMessage 方法。
  • false(默认值):只删除本地会话,保留历史消息。
HarmonyOS
TypeScriptdeleteConversationListByIds(conversationIds, clearMessage?): Promise<V2NIMLocalConversationOperationResult[]>
参数名称 类型 是否必填 说明
conversationIds string[] 会话 ID 列表。单次调用上限为 100 条。
不可为空,否则返回 191004 参数错误。
clearMessage boolean 是否删除本地会话对应的本地历史消息。
  • true:清空本地历史消息。不清空云端历史消息,若需要删除云端历史消息,请使用 clearHistoryMessage 方法。
  • false(默认值):只删除本地会话,保留历史消息。

示例代码

Android
JavaList<String> conversationIds = new ArrayList<>();
conversationIds.add("cjl|1|cjl1");
conversationIds.add("cjl|2|43243253");
conversationIds.add("cjl|3|234323432");
//是否清空消息记录
boolean clearMessage = true;
NIMClient.getService(V2NIMLocalConversationService.class).deleteConversationListByIds(conversationIds, clearMessage, new V2NIMSuccessCallback<List<V2NIMLocalConversationOperationResult>>() {
  @Override
  public void onSuccess(List<V2NIMLocalConversationOperationResult> result) {
   // 删除成功,返回会话ID操作失败的列表
  }
}, new V2NIMFailureCallback() {
  @Override
  public void onFailure(V2NIMError error) {
   // 删除失败
  }
});
iOS
Objective-CNSMutableArray *conversationIds = [[NSMutableArray alloc] init];
[conversationIds addObject:@"cjl|1|cjl1"];
[conversationIds addObject:@"cjl|2|43243253"];
[conversationIds addObject:@"cjl|3|234323432"];
// 是否清空消息记录
BOOL clearMessage = YES;
[[NIMSDK sharedSDK].v2LocalConversationService deleteConversationListByIds:conversationIds 
                                                               clearMessage:clearMessage 
                                                                    success:^(NSArray<V2NIMLocalConversationOperationResult *> *result) {
    // 删除成功,返回会话ID操作失败的列表
} failure:^(V2NIMError *error) {
    // 删除失败
}];
macOS/Windows
C++auto conversationIds = nstd::vector<nstd::string>();
conversationIds.emplace_back(V2NIMConversationIdUtil::p2pConversationId("account1"));
conversationIds.emplace_back(V2NIMConversationIdUtil::p2pConversationId("account2"));
localConversationService.deleteConversationListByIds(
    conversationIds,
    true,
    [](nstd::vector<V2NIMLocalConversationOperationResult> failedList) {
        // delete succeeded
    },
    [](V2NIMError error) {
        // delete failed, handle error
    });
Web/uni-app/小程序
TypeScriptawait nim.V2NIMLocalConversationService.deleteConversationListByIds(["CONVERSATION_ID1", "CONVERSATION_ID2"], true)
Node.js/Electron
TypeScriptconst result = await v2.localConversationService.deleteConversationListByIds(['conversation1', 'conversation2'], true)
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
}

返回参数

Android/iOS/macOS/Windows

无返回值。

Web/uni-app/小程序/Node.js/Electron/HarmonyOS

相关回调

Android/macOS/Windows
  • 请求成功,返回 V2NIMSuccessCallback 回调。每一条本地会话删除成功,均返回 onConversationDeleted 回调。可能返回 onTotalUnreadCountChangedonUnreadCountChangedByFilter 回调。
  • 请求失败,返回 V2NIMFailuerCallback 回调,包含会话相关错误码。
iOS
  • 请求成功,返回 V2NIMLocalConversationOperationResultListCallback 回调。每一条本地会话删除成功,均返回 onConversationDeleted 回调。可能返回 onTotalUnreadCountChangedonUnreadCountChangedByFilter 回调。
  • 请求失败,返回 V2NIMFailuerCallback 回调,包含会话相关错误码。
Web/uni-app/小程序/HarmonyOS

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

Node.js/Electron

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

getConversation

接口描述

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

  • 查询前请确保指定的会话存在。
  • 数据同步完成前,可能查询不到完整数据或者查询到的是老数据。

参数说明

Android
Javavoid getConversation(@NonNull String conversationId, V2NIMSuccessCallback<V2NIMLocalConversation> success, V2NIMFailureCallback failure);
参数名称 类型 是否必填 说明
conversationId String 会话 ID,如果为空、不合法、不存在则返回 191004 参数错误。
success V2NIMSuccessCallback 查询成功回调,返回 V2NIMLocalConversation
failure V2NIMFailureCallback 查询失败回调,返回 错误码
iOS
Objective-C- (void)getConversation:(NSString *)conversationId
                success:(V2NIMLocalConversationCallback)success
                failure:(V2NIMFailureCallback)failure;
参数名称 类型 是否必填 说明
conversationId NSString 会话 ID,如果为空、不合法、不存在则返回 191004 参数错误。
success V2NIMLocalConversationCallback 查询成功回调,可自定义。
failure V2NIMFailureCallback 查询失败回调,返回 错误码
macOS/Windows
C++virtual void getConversationListByIds(const nstd::vector<nstd::string>& conversationIds,
    const V2NIMSuccessCallback<const nstd::vector<V2NIMLocalConversation>&>& success,
    const V2NIMFailureCallback& failure) = 0;
参数名称 类型 是否必填 说明
conversationId nstd::vector<nstd::string> 会话 ID,如果为空、不合法、不存在则返回 191004 参数错误。
success V2NIMSuccessCallback 查询成功回调,返回 V2NIMLocalConversation
failure V2NIMFailureCallback 查询失败回调,返回 错误码
Web/uni-app/小程序
TypeScriptgetConversation(conversationId: string): Promise<V2NIMLocalConversation>
参数名称 类型 是否必填 说明
conversationId string 会话 ID,如果为空、不合法、不存在则返回 191004 参数错误。
Node.js/Electron
TypeScriptgetConversation(conversationId): Promise<V2NIMLocalConversation>
参数名称 类型 是否必填 说明
conversationId string 会话 ID,如果为空、不合法、不存在则返回 191004 参数错误。
HarmonyOS
TypeScriptgetConversation(conversationId): Promise<V2NIMLocalConversation>
参数名称 类型 是否必填 说明
conversationId string 会话 ID,如果为空、不合法、不存在则返回 191004 参数错误。

示例代码

Android
JavaString conversationId = "cjl|1|cjl1";
NIMClient.getService(V2NIMLocalConversationService.class).getConversation(conversationId, new V2NIMSuccessCallback<V2NIMLocalConversation>() {
  @Override
  public void onSuccess(V2NIMLocalConversation result) {
    // 获取成功
  }
}, new V2NIMFailureCallback() {
  @Override
  public void onFailure(V2NIMError error) {
    //获取失败   
  }
});
iOS
Objective-CNSString *conversationId = @"cjl|1|cjl1";

[[NIMSDK sharedSDK].v2LocalConversationService getConversation:conversationId
                                                      success:^(V2NIMLocalConversation *result) {
    // 获取成功
} failure:^(V2NIMError *error) {
    // 获取失败
}];
macOS/Windows
C++auto conversationId = V2NIMConversationIdUtil::p2pConversationId("account1");
localConversationService.getConversation(
    conversationId,
    [](V2NIMLocalConversation conversation) {
        // get conversation succeeded
    },
    [](V2NIMError error) {
        // get conversation failed, handle error
    });
Web/uni-app/小程序
TypeScriptconst data = await nim.V2NIMLocalConversationService.getConversation("TARGET_CONVERSATION_ID")
Node.js/Electron
TypeScriptconst conversation = await v2.localConversationService.getConversation('conversation1')
HarmonyOS
TypeScriptlet conversationId: string = "cjl|1|cjl1";
try {
  let conv = await this.localConversationService.getConversation(conversationId)
  // success
} catch (e) {
  // fail
}

返回参数

Android/iOS/macOS/Windows

无返回值。

Web/uni-app/小程序/Node.js/Electron/HarmonyOS

Promise<V2NIMLocalConversation> 本地会话对象

相关回调

Android/macOS/Windows
  • 请求成功,返回 V2NIMSuccessCallback 回调,包含 V2NIMLocalConversation
  • 请求失败,返回 V2NIMFailuerCallback 回调,包含会话相关错误码。
iOS
  • 请求成功,返回 V2NIMLocalConversationCallback 回调,可自定义设置。
  • 请求失败,返回 V2NIMFailuerCallback 回调,包含会话相关错误码。
Web/uni-app/小程序/Node.js/Electron/HarmonyOS

无。

getConversationList

接口描述

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

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

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

参数说明

Android
Javavoid getConversationList(long offset, int limit, V2NIMSuccessCallback<V2NIMLocalConversationResult> success, V2NIMFailureCallback failure);
参数名称 类型 是否必填 说明
offset long 分页偏移。首次调用传 0,后续调用时传入上一次调用返回的 offset
limit int 单次查询会话数量上限,建议不超过 100。设置为小于或等于 0 则默认为 100。
success V2NIMSuccessCallback 查询成功回调,返回 V2NIMLocalConversationResult
failure V2NIMFailureCallback 查询失败回调,返回 错误码
iOS
Objective-C- (void)getConversationList:(NSInteger)offset
                      limit:(NSInteger)limit
                    success:(V2NIMLocalConversationResultCallback)success
                    failure:(V2NIMFailureCallback)failure;
参数名称 类型 是否必填 说明
offset NSInteger 分页偏移。首次调用传 0,后续调用时传入上一次调用返回的 offset
limit NSInteger 单次查询会话数量上限,建议不超过 100。设置为小于或等于 0 则默认为 100。
success V2NIMLocalConversationResultCallback 查询成功回调,可自定义。
failure V2NIMFailureCallback 查询失败回调,返回 错误码
macOS/Windows
C++virtual void getConversationList(uint32_t offset,
    uint32_t limit,
    const V2NIMSuccessCallback<const V2NIMLocalConversationResult&>& success,
    const V2NIMFailureCallback& failure) = 0;
参数名称 类型 是否必填 说明
offset uint32_t 分页偏移。首次调用传 0,后续调用时传入上一次调用返回的 offset
limit uint32_t 单次查询会话数量上限,建议不超过 100。设置为小于或等于 0 则默认为 100。
success V2NIMSuccessCallback 查询成功回调,返回 V2NIMLocalConversationResult
failure V2NIMFailureCallback 查询失败回调,返回 错误码
Web/uni-app/小程序
TypeScriptgetConversationList(offset: number, limit: number): Promise<V2NIMLocalConversationResult>
参数名称 类型 是否必填 说明
offset number 分页偏移。首次调用传 0,后续调用时传入上一次调用返回的 offset
limit number 单次查询会话数量上限,建议不超过 100。设置为小于或等于 0 则默认为 100。
Node.js/Electron
TypeScriptgetConversationList(offset, limit): Promise<V2NIMLocalConversationResult>
参数名称 类型 是否必填 说明
offset number 分页偏移。首次调用传 0,后续调用时传入上一次调用返回的 offset
limit number 单次查询会话数量上限,建议不超过 100。设置为小于或等于 0 则默认为 100。
HarmonyOS
TypeScriptgetConversationList(offset: number, limit: number): Promise<V2NIMLocalConversationResult>
参数名称 类型 是否必填 说明
offset number 分页偏移。首次调用传 0,后续调用时传入上一次调用返回的 offset
limit number 单次查询会话数量上限,建议不超过 100。设置为小于或等于 0 则默认为 100。

示例代码

Android
Javaint offset = 0;
//分页拉取数量,不建议超过100
int limit = 100;
NIMClient.getService(V2NIMLocalConversationService.class).getConversationList(offset, limit, new V2NIMSuccessCallback<V2NIMLocalConversationResult>() {
    @Override
    public void onSuccess(V2NIMLocalConversationResult result) {
        // 获取成功
        //本地会话列表
        List<V2NIMLocalConversation> conversationList = result.getConversationList();
        //是否拉取完毕
        boolean finished = result.isFinished();
        //下一次拉取偏移量,首次传入的offset值,后续拉取采用上一次返回的offset值。如果finished为true,则返回0
        long nextOffset = result.getOffset();
    }
}, new V2NIMFailureCallback() {
    @Override
    public void onFailure(V2NIMError error) {
        //获取失败
    }
});
iOS
Objective-CNSInteger offset = 0;
// 分页拉取数量,不建议超过100
NSInteger limit = 100;
[[NIMSDK sharedSDK].v2LocalConversationService getConversationList:offset
                                                             limit:limit
                                                           success:^(V2NIMLocalConversationResult *result) {
    // 获取成功
    // 本地会话列表
    NSArray<V2NIMLocalConversation *> *conversationList = result.conversationList;
    // 是否拉取完毕
    BOOL finished = result.finished;
    // 下一次拉取偏移量,首次传入的offset值,后续拉取采用上一次返回的offset值。如果finished为true,则返回0
    NSInteger nextOffset = result.offset;
    } failure:^(V2NIMError *error) {
        // 获取失败
    }];
macOS/Windows
C++localConversationService.getConversationList(
    lastCursor,
    10,
    [](V2NIMLocalConversationResult result) {
        // get conversation list succeeded
    },
    [](V2NIMError error) {
        // get conversation list failed, handle error
    });
Web/uni-app/小程序
TypeScriptconst { offset, finished, conversationList } = await nim.V2NIMLocalConversationService.getConversationList(0, 100)
Node.js/Electron
TypeScriptconst result = await v2.localConversationService.getConversationList(0, 10)
HarmonyOS
TypeScripttry {
  const result = await nim.localConversationService.getConversationList(0, 100)
  // success
} catch (err) {
  // fail
}

返回参数

Android/iOS/macOS/Windows

无返回值。

Web/uni-app/小程序/Node.js/Electron/HarmonyOS

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

相关回调

Android/macOS/Windows
  • 请求成功,返回 V2NIMSuccessCallback 回调,包含 V2NIMLocalConversationResult
  • 请求失败,返回 V2NIMFailuerCallback 回调,包含会话相关错误码。
iOS
  • 请求成功,返回 V2NIMLocalConversationResultCallback 回调,可自定义设置。
  • 请求失败,返回 V2NIMFailuerCallback 回调,包含会话相关错误码。
Web/uni-app/小程序/Node.js/Electron/HarmonyOS

无。

:::

getConversationListByOption

接口描述

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

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

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

参数说明

Android
Javavoid getConversationListByOption(long offset, int limit, V2NIMLocalConversationOption option, V2NIMSuccessCallback<V2NIMLocalConversationResult> success,
   V2NIMFailureCallback failure);
参数名称 类型 是否必填 说明
offset long 分页偏移。首次调用传 0,后续调用时传入上一次调用返回的 offset
limit int 单次查询会话数量上限,建议不超过 100。设置为小于或等于 0 则默认为 100。
option V2NIMLocalConversationOption 查询条件,设置为空则查询所有本地会话列表。
success V2NIMSuccessCallback 查询成功回调,返回 V2NIMLocalConversationResult
failure V2NIMFailureCallback 查询失败回调,返回 错误码
iOS
Objective-C- (void)getConversationListByOption:(NSInteger)offset
                              limit:(NSInteger)limit
                             option:(nullable V2NIMLocalConversationOption *)option
                            success:(V2NIMLocalConversationResultCallback)success
                            failure:(V2NIMFailureCallback)failure;
参数名称 类型 是否必填 说明
offset NSInteger 分页偏移。首次调用传 0,后续调用时传入上一次调用返回的 offset
limit NSInteger 单次查询会话数量上限,建议不超过 100。设置为小于或等于 0 则默认为 100。
option V2NIMLocalConversationOption 查询条件,设置为空则查询所有本地会话列表。
success V2NIMLocalConversationResultCallback 查询成功回调,可自定义。
failure V2NIMFailureCallback 查询失败回调,返回 错误码
macOS/Windows
C++virtual void getConversationListByOption(uint32_t offset,
    uint32_t limit,
    const V2NIMLocalConversationOption& option,
    const V2NIMSuccessCallback<const V2NIMLocalConversationResult&>& success,
    const V2NIMFailureCallback& failure) = 0;
参数名称 类型 是否必填 说明
offset uint32_t 分页偏移。首次调用传 0,后续调用时传入上一次调用返回的 offset
limit uint32_t 单次查询会话数量上限,建议不超过 100。设置为小于或等于 0 则默认为 100。
option V2NIMLocalConversationOption 查询条件,设置为空则查询所有本地会话列表。
success V2NIMSuccessCallback 查询成功回调,返回 V2NIMLocalConversationResult
failure V2NIMFailureCallback 查询失败回调,返回 错误码
Web/uni-app/小程序
TypeScriptgetConversationListByOption(offset: number, limit: number, option: V2NIMLocalConversationOption): Promise<V2NIMLocalConversationResult>
参数名称 类型 是否必填 说明
offset number 分页偏移。首次调用传 0,后续调用时传入上一次调用返回的 offset
limit number 单次查询会话数量上限,建议不超过 100。设置为小于或等于 0 则默认为 100。
option V2NIMLocalConversationOption 查询条件,设置为空则查询所有本地会话列表。
Node.js/Electron
TypeScriptgetConversationListByOption(offset, limit, option): Promise<V2NIMLocalConversationResult>
参数名称 类型 是否必填 说明
offset number 分页偏移。首次调用传 0,后续调用时传入上一次调用返回的 offset
limit number 单次查询会话数量上限,建议不超过 100。设置为小于或等于 0 则默认为 100。
option V2NIMLocalConversationOption 查询条件,设置为空则查询所有本地会话列表。
HarmonyOS
TypeScriptgetConversationListByOption(offset: number, limit: number, option: V2NIMLocalConversationOption): Promise<V2NIMLocalConversationResult>
参数名称 类型 是否必填 说明
offset number 分页偏移。首次调用传 0,后续调用时传入上一次调用返回的 offset
limit number 单次查询会话数量上限,建议不超过 100。设置为小于或等于 0 则默认为 100。
option V2NIMLocalConversationOption 查询条件,设置为空则查询所有本地会话列表。

示例代码

Android
Javaint offset = 0;
//分页拉取数量,不建议超过100
int limit = 100;
//会话类型列表,为空表示查询所有类型,否则查询指定对话类型
List<V2NIMConversationType> conversationTypes = new ArrayList<>();
//是否只拉取未读会话,默认false
boolean onlyUnread = false;
V2NIMLocalConversationOption option = new V2NIMLocalConversationOption(conversationTypes, onlyUnread);
NIMClient.getService(V2NIMLocalConversationService.class).getConversationListByOption(offset, limit, option, new V2NIMSuccessCallback<V2NIMLocalConversationResult>() {
    @Override
    public void onSuccess(V2NIMLocalConversationResult result) {
        // 获取成功
        //本地会话列表
        List<V2NIMLocalConversation> conversationList = result.getConversationList();
        //是否拉取完毕
        boolean finished = result.isFinished();
        //下一次拉取偏移量,首次传入的offset值,后续拉取采用上一次返回的offset值。如果finished为true,则返回0
        long nextOffset = result.getOffset();
    }
}, new V2NIMFailureCallback() {
    @Override
    public void onFailure(V2NIMError error) {
        //获取失败
    }
});
iOS
Objective-CNSInteger offset = 0;
// 分页拉取数量,不建议超过100
NSInteger limit = 100;
// 会话类型列表,为空表示查询所有类型,否则查询指定对话类型
NSArray<NSNumber *> *conversationTypes = @[];
// 是否只拉取未读会话,默认false
BOOL onlyUnread = NO;

V2NIMLocalConversationOption *option = [[V2NIMLocalConversationOption alloc] init];
option.conversationTypes = conversationTypes;
option.onlyUnread = onlyUnread;

[[NIMSDK sharedSDK].v2LocalConversationService getConversationListByOption:offset
                                                                     limit:limit
                                                                    option:option
                                                                   success:^(V2NIMLocalConversationResult *result) {
    // 获取成功
    // 本地会话列表
    NSArray<V2NIMLocalConversation *> *conversationList = result.conversationList;
    // 是否拉取完毕
    BOOL finished = result.finished;
    // 下一次拉取偏移量,首次传入的offset值,后续拉取采用上一次返回的offset值。如果finished为true,则返回0
    NSInteger nextOffset = result.offset;
} failure:^(V2NIMError *error) {
    // 获取失败
}];
macOS/Windows
C++V2NIMLocalConversationOption option;
option.onlyUnread = true;
option.conversationTypes = {V2NIM_CONVERSATION_TYPE_P2P, V2NIM_CONVERSATION_TYPE_TEAM};
localConversationService.getConversationListByOption(
    lastCursor,
    10,
    option,
    [](V2NIMLocalConversationResult result) {
        // get conversation list succeeded
    },
    [](V2NIMError error) {
        // get conversation list failed, handle error
    });
Web/uni-app/小程序
TypeScriptconst { offset, finished, conversationList } = await nim.V2NIMLocalConversationService.getConversationListByOption(0, 100, {
  conversationTypes: [V2NIMConst.V2NIMConversationType.V2NIM_CONVERSATION_TYPE_P2P]
  onlyUnread: true,
})
Node.js/Electron
TypeScriptconst result = await v2.localConversationService.getConversationListByOption(0, 10, {
  conversationTypes: [1, 2]
})
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
}

返回参数

Android/iOS/macOS/Windows

无返回值。

Web/uni-app/小程序/Node.js/Electron/HarmonyOS

Promise<V2NIMLocalConversationResult> 分页查询会话列表结果相关信息

相关回调

Android/macOS/Windows
  • 请求成功,返回 V2NIMSuccessCallback 回调,包含 V2NIMLocalConversationResult
  • 请求失败,返回 V2NIMFailuerCallback 回调,包含会话相关错误码。
iOS
  • 请求成功,返回 V2NIMLocalConversationResultCallback 回调,可自定义设置。
  • 请求失败,返回 V2NIMFailuerCallback 回调,包含会话相关错误码。
Web/uni-app/小程序/Node.js/Electron/HarmonyOS

无。

getConversationListByIds

接口描述

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

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

参数说明

Android
Javavoid getConversationListByIds(@NonNull List<String> conversationIds, V2NIMSuccessCallback<List<V2NIMLocalConversation>> success,
   V2NIMFailureCallback failure);
参数名称 类型 是否必填 说明
conversationIds List<String> 会话 ID 列表,不可为空,否则返回 191004 参数错误。
success V2NIMSuccessCallback 查询成功回调,返回 List<V2NIMLocalConversation>。
failure V2NIMFailureCallback 查询失败回调,返回 错误码
iOS
Objective-C- (void)getConversationListByIds:(NSArray<NSString *> *)conversationIds
                         success:(V2NIMLocalConversationListCallback)success
                         failure:(V2NIMFailureCallback)failure;
参数名称 类型 是否必填 说明
conversationIds NSArray<NSString *> 会话 ID 列表,不可为空,否则返回 191004 参数错误。
success V2NIMLocalConversationListCallback 查询成功回调,可自定义。
failure V2NIMFailureCallback 查询失败回调,返回 错误码
macOS/Windows
C++virtual void getConversationListByIds(const nstd::vector<nstd::string>& conversationIds,
    const V2NIMSuccessCallback<const nstd::vector<V2NIMLocalConversation>&>& success,
    const V2NIMFailureCallback& failure) = 0;
参数名称 类型 是否必填 说明
conversationIds nstd::vector<nstd::string> 会话 ID 列表,不可为空,否则返回 191004 参数错误。
success V2NIMSuccessCallback 查询会话列表成功回调,返回 List<V2NIMLocalConversation>。
failure V2NIMFailureCallback 查询失败回调,返回 错误码
Web/uni-app/小程序
TypeScriptgetConversationListByIds(conversationIds: string[]): Promise<V2NIMLocalConversation[]>
参数名称 类型 是否必填 说明
conversationIds string[] 会话 ID 列表,不可为空,否则返回 191004 参数错误。
Node.js/Electron
TypeScriptgetConversationListByIds(conversationIds): Promise<V2NIMLocalConversation[]>
参数名称 类型 是否必填 说明
conversationIds string[] 会话 ID 列表,不可为空,否则返回 191004 参数错误。
HarmonyOS
TypeScriptgetConversationListByIds(conversationIds: string[]): Promise<V2NIMLocalConversation[]>
参数名称 类型 是否必填 说明
conversationIds string[] 会话 ID 列表,不可为空,否则返回 191004 参数错误。

示例代码

Android
JavaList<String> conversationIds = new ArrayList<>();
conversationIds.add("cjl|1|cjl1");
conversationIds.add("cjl|2|43243253");
conversationIds.add("cjl|3|234323432");
NIMClient.getService(V2NIMLocalConversationService.class).getConversationListByIds(conversationIds, new V2NIMSuccessCallback<List<V2NIMLocalConversation>>() {
  @Override
  public void onSuccess(List<V2NIMLocalConversation> result) {
   // 获取成功
  }
}, new V2NIMFailureCallback() {
  @Override
  public void onFailure(V2NIMError error) {
   // 获取失败
  }
});
iOS
Objective-CNSMutableArray *conversationIds = [[NSMutableArray alloc] init];
[conversationIds addObject:@"cjl|1|cjl1"];
[conversationIds addObject:@"cjl|2|43243253"];
[conversationIds addObject:@"cjl|3|234323432"];

[[NIMSDK sharedSDK].v2LocalConversationService getConversationListByIds:conversationIds
                                                                success:^(NSArray<V2NIMLocalConversation *> *result) {
    // 获取成功
} failure:^(V2NIMError *error) {
    // 获取失败
}];
macOS/Windows
C++auto conversationIds = nstd::vector<nstd::string>();
conversationIds.emplace_back(V2NIMConversationIdUtil::p2pConversationId("account1"));
conversationIds.emplace_back(V2NIMConversationIdUtil::p2pConversationId("account2"));
localConversationService.getConversationListByIds(
    conversationIds,
    [](nstd::vector<V2NIMLocalConversation> conversationList) {
        // get conversation list succeeded
    },
    [](V2NIMError error) {
        // get conversation list failed, handle error
    });
Web/uni-app/小程序
TypeScriptconst datas = await nim.V2NIMLocalConversationService.getConversationListByIds(["TARGET_CONVERSATION_ID", "TARGET_CONVERSATION_ID2"]])
Node.js/Electron
TypeScriptconst list = await v2.localConversationService.getConversationListByIds(['conversation1', 'conversation2'])
HarmonyOS
TypeScriptlet conversationIds: string[] = ["cjl|1|cjl1", "cjl|2|cjl2"];
try {
  let result = await this.localConversationService.getConversationListByIds(conversationIds)
  // success
} catch (e) {
  // fail
}

返回参数

Android/iOS/macOS/Windows

无返回值。

Web/uni-app/小程序/Node.js/Electron/HarmonyOS

Promise<V2NIMLocalConversation[]> 本地会话列表相关信息

相关回调

Android/macOS/Windows
  • 请求成功,返回 V2NIMSuccessCallback 回调,包含 V2NIMLocalConversation 列表。
  • 请求失败,返回 V2NIMFailuerCallback 回调,包含会话相关错误码。
iOS
  • 请求成功,返回 V2NIMLocalConversationListCallback 回调,可自定义设置。
  • 请求失败,返回 V2NIMFailuerCallback 回调,包含会话相关错误码。
Web/uni-app/小程序/Node.js/Electron/HarmonyOS

无。

updateConversationLocalExtension

接口描述

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

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

本地扩展字段不会多端同步,web 端仅存内存。

更新前请确保该会话已存在。

参数说明

Android
javavoid updateConversationLocalExtension(@NonNull String conversationId, String localExtension, V2NIMSuccessCallback<Void> success,
   V2NIMFailureCallback failure);
参数名称 类型 是否必填 说明
conversationId String 会话 ID,如果为空、不合法、不存在则返回 191004 参数错误。
localExtension String 更新本地会话的本地扩展字段。
success V2NIMSuccessCallback 更新成功回调。
failure V2NIMFailureCallback 更新失败回调,返回 错误码
iOS
Objective-C- (void)updateConversationLocalExtension:(NSString *)conversationId
                          localExtension:(NSString *)localExtension
                                 success:(V2NIMSuccessCallback)success
                                 failure:(V2NIMFailureCallback)failure;
参数名称 类型 是否必填 说明
conversationId NSString 会话 ID,如果为空、不合法、不存在则返回 191004 参数错误。
localExtension NSString 更新本地会话本地扩展字段。
success V2NIMSuccessCallback 更新成功回调。
failure V2NIMFailureCallback 更新失败回调,返回 错误码
macOS/Windows
c++virtual void updateConversationLocalExtension(const nstd::string& conversationId,
    const nstd::string& localExtension,
    const V2NIMSuccessCallback<void>& success,
    const V2NIMFailureCallback& failure) = 0;
参数名称 类型 是否必填 说明
conversationId nstd::string 会话 ID,如果为空、不合法、不存在则返回 191004 参数错误。
localExtension nstd::string 更新本地会话本地扩展字段。
success V2NIMSuccessCallback 更新成功回调。
failure V2NIMFailureCallback 更新失败回调,返回 错误码
Web/uni-app/小程序
TypeScriptupdateConversationLocalExtension(conversationId: string, localExtension: string): Promise<void>
参数名称 类型 是否必填 说明
conversationId string 会话 ID,如果为空、不合法、不存在则返回 191004 参数错误。
localExtension string 更新本地会话本地扩展字段。
Node.js/Electron
TypeScriptupdateConversationLocalExtension(conversationId, localExtension): Promise<void>
参数名称 类型 是否必填 说明
conversationId string 会话 ID,如果为空、不合法、不存在则返回 191004 参数错误。
localExtension string 更新本地会话本地扩展字段。
HarmonyOS
TypeScriptupdateConversationLocalExtension(conversationId: string, localExtension: string): Promise<void>
参数名称 类型 是否必填 说明
conversationId string 会话 ID,如果为空、不合法、不存在则返回 191004 参数错误。
localExtension string 更新本地会话本地扩展字段。

示例代码

Android
javaString conversationId = "cjl|1|cjl1";
//本地扩展字段
String localExtension = "localExtension";
NIMClient.getService(V2NIMLocalConversationService.class).updateConversationLocalExtension(conversationId, localExtension, new V2NIMSuccessCallback<Void>() {
  @Override
  public void onSuccess(Void result) {
   // 更新成功
  }
}, new V2NIMFailureCallback() {
  @Override
  public void onFailure(V2NIMError error) {
   // 更新失败
  }
});
iOS
Objective-CNSString *conversationId = @"cjl|1|cjl1";
// 本地扩展字段
NSString *localExtension = @"localExtension";
[[NIMSDK sharedSDK].v2LocalConversationService updateConversationLocalExtension:conversationId
                                                                 localExtension:localExtension
                                                                        success:^() {
    // 更新成功
} failure:^(V2NIMError *error) {
    // 更新失败
}];
macOS/Windows
c++auto conversationId = V2NIMConversationIdUtil::p2pConversationId("account1");
localConversationService.updateConversationLocalExtension(
    conversationId,
    "localExtension",
    []() {
        // update succeeded
    },
    [](V2NIMError error) {
        // update failed, handle error
    });
Web/uni-app/小程序
TypeScriptawait nim.V2NIMLocalConversationService.updateConversationLocalExtension("CONVERSATION_ID", 'newLocalExtension!'})
Node.js/Electron
TypeScriptawait v2.localConversationService.updateConversationLocalExtension('conversation1', 'newExtension')
HarmonyOS
TypeScriptlet conversationId: string = "cjl|1|cjl1"
let localExtension: string = "localExtension"
try {
  await this.localConversationService.updateConversationLocalExtension(conversationId, localExtension)
  // success
} catch (e) {
  // fail
}

返回参数

Android/iOS/macOS/Windows

无返回值。

Web/uni-app/小程序/Node.js/Electron/HarmonyOS

Promise<void>

相关回调

Android/iOS/macOS/Windows
  • 请求成功,返回 V2NIMSuccessCallback 回调。更新成功,返回 onConversationChanged 回调。
  • 请求失败,返回 V2NIMFailuerCallback 回调,包含会话相关错误码。
Web/uni-app/小程序/HarmonyOS

更新成功,返回 onConversationChanged 回调。

Node.js/Electron

更新成功,返回 conversationChanged 回调。

stickTopConversation

接口描述

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

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

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

参数说明

Android
Javavoid stickTopConversation(@NonNull String conversationId, boolean stickTop, V2NIMSuccessCallback<Void> success, V2NIMFailureCallback failure);
参数名称 类型 是否必填 说明
conversationId String 会话 ID,如果为空、不合法、不存在则返回 191004 参数错误。
stickTop boolean 是否置顶。
success V2NIMSuccessCallback 置顶成功回调。
failure V2NIMFailureCallback 置顶失败回调,返回 错误码
iOS
Objective-C- (void)stickTopConversation:(NSString *)conversationId
                    stickTop:(BOOL)stickTop
                     success:(V2NIMSuccessCallback)success
                     failure:(V2NIMFailureCallback)failure;
参数名称 类型 是否必填 说明
conversationId NSString 会话 ID,如果为空、不合法、不存在则返回 191004 参数错误。
stickTop BOOL 是否置顶。
success V2NIMSuccessCallback 置顶成功回调。
failure V2NIMFailureCallback 置顶失败回调,返回 错误码
macOS/Windows
C++virtual void stickTopConversation(const nstd::string& conversationId,
    bool stickTop,
    const V2NIMSuccessCallback<void>& success,
    const V2NIMFailureCallback& failure) = 0;
参数名称 类型 是否必填 说明
conversationId nstd::string 会话 ID,如果为空、不合法、不存在则返回 191004 参数错误。
stickTop bool 是否置顶。
success V2NIMSuccessCallback 置顶成功回调。
failure V2NIMFailureCallback 置顶失败回调,返回 错误码
Web/uni-app/小程序
TypeScriptstickTopConversation(conversationId: string, stickTop: boolean): Promise<void>
参数名称 类型 是否必填 说明
conversationId string 会话 ID,如果为空、不合法、不存在则返回 191004 参数错误。
stickTop boolean 是否置顶。
Node.js/Electron
TypeScriptstickTopConversation(conversationId, stickTop): Promise<void>
参数名称 类型 是否必填 说明
conversationId string 会话 ID,如果为空、不合法、不存在则返回 191004 参数错误。
stickTop boolean 是否置顶。
HarmonyOS
TypeScriptstickTopConversation(conversationId: string, stickTop: boolean): Promise<void>
参数名称 类型 是否必填 说明
conversationId string 会话 ID,如果为空、不合法、不存在则返回 191004 参数错误。
stickTop boolean 是否置顶。

示例代码

Android
JavaString conversationId = "cjl|1|cjl1";
//是否置顶,true:置顶, false:取消置顶
boolean stickTop = true;
NIMClient.getService(V2NIMLocalConversationService.class).stickTopConversation(conversationId, stickTop, new V2NIMSuccessCallback<Void>() {
  @Override
  public void onSuccess(Void result) {
   // 置顶成功
  }
}, new V2NIMFailureCallback() {
  @Override
  public void onFailure(V2NIMError error) {
   // 置顶失败
  }
});
iOS
Objective-CNSString *conversationId = @"cjl|1|cjl1";
// 是否置顶,YES:置顶, NO:取消置顶
BOOL stickTop = YES;
[[NIMSDK sharedSDK].v2LocalConversationService stickTopConversation:conversationId 
                                                           stickTop:stickTop 
                                                            success:^(id result) {
    // 置顶成功
} failure:^(V2NIMError *error) {
    // 置顶失败
}];
macOS/Windows
C++auto conversationId = V2NIMConversationIdUtil::p2pConversationId("account1");
localConversationService.stickTopConversation(
    conversationId,
    true,
    []() {
        // stick top succeeded
    },
    [](V2NIMError error) {
        // stick top failed, handle error
    });
Web/uni-app/小程序
TypeScriptawait nim.V2NIMLocalConversationService.stickTopConversation("CONVERSATION_ID", true)

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

返回参数

Android/iOS/macOS/Windows

无返回值。

Web/uni-app/小程序/Node.js/Electron/HarmonyOS

Promise<void>

相关回调

Android/iOS/macOS/Windows
  • 请求成功,返回 V2NIMSuccessCallback 回调。置顶成功,返回 onConversationChanged 回调。
  • 请求失败,返回 V2NIMFailuerCallback 回调,包含会话相关错误码。
Web/uni-app/小程序/HarmonyOS

置顶成功,返回 onConversationChanged 回调。

Node.js/Electron

置顶成功,返回 conversationChanged 回调。

getStickTopConversationList

接口描述

查询当前全量置顶的本地会话列表。

参数说明

Android
Javavoid getStickTopConversationList(V2NIMSuccessCallback<List<V2NIMLocalConversation>> success, V2NIMFailureCallback failure);
参数名称 类型 是否必填 说明
success V2NIMSuccessCallback 查询成功回调。
failure V2NIMFailureCallback 查询失败回调,返回 错误码
iOS
Objective-C- (void)getStickTopConversationList:(V2NIMLocalConversationListCallback)success
                            failure:(V2NIMFailureCallback)failure;
参数名称 类型 是否必填 说明
success V2NIMLocalConversationListCallback 查询成功回调,可自定义设置。
failure V2NIMFailureCallback 查询失败回调,返回 错误码
macOS/Windows
C++virtual void getStickTopConversationList(const V2NIMSuccessCallback<const nstd::vector<V2NIMLocalConversation>&>& success,
    const V2NIMFailureCallback& failure) = 0;
参数名称 类型 是否必填 说明
success V2NIMSuccessCallback 查询成功回调。
failure V2NIMFailureCallback 查询失败回调,返回 错误码
Web/uni-app/小程序
TypeScriptgetStickTopConversationList(): Promise<V2NIMLocalConversation[]>

无参数。

Node.js/Electron
TypeScriptgetStickTopConversationList(): Promise<V2NIMLocalConversation[]>

无参数。

HarmonyOS
TypeScriptgetStickTopConversationList(): Promise<V2NIMLocalConversation[]>

无参数。

示例代码

Android
JavaNIMClient.getService(V2NIMLocalConversationService.class).getStickTopConversationList(
    new V2NIMSuccessCallback<List<V2NIMLocalConversation>>() {
        @Override
        public void onSuccess(List<V2NIMLocalConversation> conversationList) {
            // receive result
        }
    }, new V2NIMFailureCallback() {
        @Override
        public void onFailure(V2NIMError error) {
            int code = error.getCode();
            String desc = error.getDesc();;
            // handle error
        }
    }
);
iOS
Objective-C[[NIMSDK sharedSDK].v2LocalConversationService getStickTopConversationList:^(NSArray<V2NIMLocalConversation *> * _Nonnull conversationList) {
    // 获取成功
} failure:^(V2NIMError * _Nonnull error) {
    // 获取失败
}];
macOS/Windows
C++localConversationService.getStickTopConversationList(
    [](const nstd::vector<V2NIMLocalConversation>& conversationList) {
        // get stick top conversation list succeeded
    },
    [](V2NIMError error) {
        // get stick top conversation list failed, handle error
    });
Web/uni-app/小程序
TypeScripttry {
  const list = await nim.V2NIMLocalConversationService.getStickTopConversationList()
  // receive result
} catch (err) {
  // handle error
}
Node.js/Electron
TypeScriptconst list = await v2.localConversationService.getStickTopConversationList()
HarmonyOS
TypeScripttry {
  const conversationList: V2NIMLocalConversation[] = await nim.localConversationService.getStickTopConversationList();
  // success
} catch (err) {
  // fail
}

返回参数

Android/iOS/macOS/Windows

无返回值。

Web/uni-app/小程序/Node.js/Electron/HarmonyOS

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

相关回调

Android/macOS/Windows
  • 请求成功,返回 V2NIMSuccessCallback 回调。
  • 请求失败,返回 V2NIMFailuerCallback 回调,包含会话相关错误码。
iOS
  • 请求成功,返回 V2NIMLocalConversationListCallback 回调。
  • 请求失败,返回 V2NIMFailuerCallback 回调,包含会话相关错误码。
Web/uni-app/小程序/Node.js/Electron/HarmonyOS

无。

getTotalUnreadCount

接口描述

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

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

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

参数说明

Android
Javaint getTotalUnreadCount();

无参数。

iOS
Objective-C- (NSInteger)getTotalUnreadCount;

无参数。

macOS/Windows
C++virtual uint32_t getTotalUnreadCount() = 0;

无参数。

Web/uni-app/小程序
TypeScriptgetTotalUnreadCount(): number

无参数。

Node.js/Electron
TypeScriptgetTotalUnreadCount(): number

无参数。

HarmonyOS
TypeScriptgetTotalUnreadCount(): number

无参数。

示例代码

Android
Javaint totalUnreadCount = NIMClient.getService(V2NIMLocalConversationService.class).getTotalUnreadCount();
iOS
Objective-CNSInteger totalUnreadCount = [[NIMSDK sharedSDK].v2LocalConversationService getTotalUnreadCount];
macOS/Windows
C++auto totalUnreadCount = localConversationService.getTotalUnreadCount();
Web/uni-app/小程序
TypeScriptconst count = nim.V2NIMLocalConversationService.getTotalUnreadCount()
Node.js/Electron
TypeScriptconst count = await v2.localConversationService.getTotalUnreadCount()
HarmonyOS
TypeScriptconst unreadCount: number = this.localConversationService.getTotalUnreadCount()

返回参数

全部会话的消息总未读数。

相关回调

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

getUnreadCountByIds

接口描述

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

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

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

参数说明

Android
Javavoid getUnreadCountByIds(@NonNull List<String> conversationIds, V2NIMSuccessCallback<Integer> success, V2NIMFailureCallback failure);
参数名称 类型 是否必填 说明
conversationIds List<String> 会话 ID 列表,不可为空,否则返回 191004 参数错误。
success V2NIMSuccessCallback 获取成功回调,返回指定本地会话列表的总未读数。
failure V2NIMFailureCallback 获取失败回调,返回 错误码
iOS
Objective-C- (void)getUnreadCountByIds:(NSArray<NSString *> *)conversationIds
                    success:(V2NIMLocalConversationUnreadCountCallback)success
                    failure:(V2NIMFailureCallback)failure;
参数名称 类型 是否必填 说明
conversationIds NSArray<NSString *> 会话 ID 列表,不可为空,否则返回 191004 参数错误。
success V2NIMLocalConversationUnreadCountCallback 获取成功回调,可自定义。
failure V2NIMFailureCallback 获取失败回调,返回 错误码
macOS/Windows
C++virtual void getUnreadCountByIds(const nstd::vector<nstd::string>& conversationIds,
    const V2NIMSuccessCallback<uint32_t>& success,
    const V2NIMFailureCallback& failure) = 0;
参数名称 类型 是否必填 说明
conversationIds nstd::vector<nstd::string> 会话 ID 列表,不可为空,否则返回 191004 参数错误。
success V2NIMSuccessCallback 获取成功回调,返回指定本地会话列表的总未读数。
failure V2NIMFailureCallback 获取失败回调,返回 错误码
Web/uni-app/小程序
TypeScriptgetUnreadCountByIds(conversationIds: string[]): Promise<number>
参数名称 类型 是否必填 说明
conversationIds string[] 会话 ID 列表,不可为空,否则返回 191004 参数错误。
Node.js/Electron
TypeScriptgetUnreadCountByIds(conversationIds): Promise<number>
参数名称 类型 是否必填 说明
conversationIds string[] 会话 ID 列表,不可为空,否则返回 191004 参数错误。
HarmonyOS
TypeScriptgetUnreadCountByIds(conversationIds: string[]): Promise<number>
参数名称 类型 是否必填 说明
conversationIds string[] 会话 ID 列表,不可为空,否则返回 191004 参数错误。

示例代码

Android
JavaList<String> conversationIds = new ArrayList<>();
conversationIds.add("cjl|1|cjl1");
conversationIds.add("cjl|2|43243253");
NIMClient.getService(V2NIMLocalConversationService.class).getUnreadCountByIds(conversationIds, new V2NIMSuccessCallback<Integer>() {
  @Override
  public void onSuccess(Integer unreadCounts) {
   // 获取成功,返回总未读数为所有合法会话加和后的值
  }
}, new V2NIMFailureCallback() {
  @Override
  public void onFailure(V2NIMError error) {
   //获取失败
  }
});
iOS
Objective-CNSMutableArray *conversationIds = [[NSMutableArray alloc] init];
[conversationIds addObject:@"cjl|1|cjl1"];
[conversationIds addObject:@"cjl|2|43243253"];
[[NIMSDK sharedSDK].v2LocalConversationService getUnreadCountByIds:conversationIds 
                                                           success:^(NSInteger unreadCounts) {
    // 获取成功,返回总未读数为所有合法会话加和后的值
} failure:^(V2NIMError *error) {
    // 获取失败
}];
macOS/Windows
C++auto conversationIds = nstd::vector<nstd::string>();
conversationIds.emplace_back(V2NIMConversationIdUtil::p2pConversationId("account1"));
conversationIds.emplace_back(V2NIMConversationIdUtil::p2pConversationId("account2"));
localConversationService.getUnreadCountByIds(
    conversationIds,
    [](uint32_t count) {
        // get unread count succeeded
    },
    [](V2NIMError error) {
        // get unread count failed, handle error
    });
Web/uni-app/小程序
TypeScriptconst unreadCounts = await nim.V2NIMLocalConversationService.getUnreadCountByIds(["CONVERSATION_ID1,CONVERSATION_ID2"])
Node.js/Electron
TypeScriptconst count = await v2.localConversationService.getUnreadCountByIds(['conversation1', 'conversation2'])
HarmonyOS
TypeScriptlet conversationIds: string[] = ["cjl|1|cjl1", "cjl|2|cjl2"];
try {
  const unreadCount: number = await this.localConversationService.getUnreadCountByIds(conversationIds)
  // success
} catch (e) {
  // fail
}

返回参数

Android/iOS/macOS/Windows

无返回值。

Web/uni-app/小程序/Node.js/Electron/HarmonyOS

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

相关回调

Android//macOS/Windows
  • 请求成功,返回 V2NIMSuccessCallback 回调,包含指定的本地会话列表的总未读数。
  • 请求失败,返回 V2NIMFailuerCallback 回调,包含会话相关错误码。
iOS
  • 请求成功,返回 V2NIMLocalConversationUnreadCountCallback 回调,可自定义设置。
  • 请求失败,返回 V2NIMFailuerCallback 回调,包含会话相关错误码。
Web/uni-app/小程序/Node.js/Electron/HarmonyOS

无。

getUnreadCountByFilter

接口描述

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

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

参数说明

Android
Javavoid getUnreadCountByFilter(V2NIMLocalConversationFilter filter, V2NIMSuccessCallback<Integer> success, V2NIMFailureCallback failure);
参数名称 类型 是否必填 说明
filter V2NIMLocalConversationFilter 过滤器配置,SDK 会按照该参数配置进行滤,并返回过滤后的本地会话列表的消息总未读数。
success V2NIMSuccessCallback 获取成功回调,返回过滤后的本地会话列表的总未读数。
failure V2NIMFailureCallback 获取失败回调,返回 错误码
iOS
Objective-C- (void)getUnreadCountByFilter:(V2NIMLocalConversationFilter *)filter
                       success:(V2NIMLocalConversationUnreadCountCallback)success
                       failure:(V2NIMFailureCallback)failure;
参数名称 类型 是否必填 说明
filter V2NIMLocalConversationFilter 过滤器配置,SDK 会按照该参数配置进行滤,并返回过滤后的本地会话列表的消息总未读数。
success V2NIMLocalConversationUnreadCountCallback 获取未读数成功回调,可自定义。
failure V2NIMFailureCallback 获取失败回调,返回 错误码
macOS/Windows
C++virtual void getUnreadCountByFilter(const V2NIMLocalConversationFilter& filter,
    const V2NIMSuccessCallback<uint32_t>& success,
    const V2NIMFailureCallback& failure) = 0;
参数名称 类型 是否必填 说明
filter V2NIMLocalConversationFilter 过滤器配置,SDK 会按照该参数配置进行滤,并返回过滤后的本地会话列表的消息总未读数。
success V2NIMSuccessCallback 获取成功回调,返回过滤后的本地会话列表的总未读数。
failure V2NIMFailureCallback 获取失败回调,返回 错误码
Web/uni-app/小程序
TypeScriptgetUnreadCountByFilter(filter: V2NIMLocalConversationFilter): Promise<number>
参数名称 类型 是否必填 说明
filter V2NIMLocalConversationFilter 过滤器配置,SDK 会按照该参数配置进行滤,并返回过滤后的本地会话列表的消息总未读数。
Node.js/Electron
TypeScriptgetUnreadCountByFilter(filter): Promise<number>
参数名称 类型 是否必填 说明
filter V2NIMLocalConversationFilter 过滤器配置,SDK 会按照该参数配置进行滤,并返回过滤后的本地会话列表的消息总未读数。
HarmonyOS
TypeScriptgetUnreadCountByFilter(filter: V2NIMLocalConversationFilter): Promise<number>
参数名称 类型 是否必填 说明
filter V2NIMLocalConversationFilter 过滤器配置,SDK 会按照该参数配置进行滤,并返回过滤后的本地会话列表的消息总未读数。

示例代码

Android
JavaList<V2NIMConversationType> conversationTypes = new ArrayList<>();
//是否忽略免打扰
boolean ignoreMuted = true;
V2NIMLocalConversationFilter filter = new V2NIMLocalConversationFilter(conversationTypes, ignoreMuted);
NIMClient.getService(V2NIMLocalConversationService.class).getUnreadCountByFilter(filter, new V2NIMSuccessCallback<Integer>() {
  @Override
  public void onSuccess(Integer unreadCounts) {
   // 获取成功,返回总未读数为所有合法会话加和后的值
  }
}, new V2NIMFailureCallback() {
  @Override
  public void onFailure(V2NIMError error) {
   //获取失败
  }
});
iOS
Objective-CNSMutableArray *conversationTypes = [[NSMutableArray alloc] init];
// 是否忽略免打扰
BOOL ignoreMuted = YES;
V2NIMLocalConversationFilter *filter = [[V2NIMLocalConversationFilter alloc] init];
filter.conversationTypes = conversationTypes;
filter.ignoreMuted = ignoreMuted;
[[NIMSDK sharedSDK].v2LocalConversationService getUnreadCountByFilter:filter
                                                              success:^(NSInteger unreadCounts) {
    // 获取成功,返回总未读数为所有合法会话加和后的值
} failure:^(V2NIMError *error) {
    // 获取失败
}];
macOS/Windows
C++V2NIMLocalConversationFilter filter;
filter.conversationTypes = {V2NIM_CONVERSATION_TYPE_P2P, V2NIM_CONVERSATION_TYPE_TEAM};
localConversationService.getUnreadCountByFilter(
    filter,
    [](uint32_t count) {
        // get unread count succeeded
    },
    [](V2NIMError error) {
        // get unread count failed, handle error
    });
Web/uni-app/小程序
TypeScriptconst unreadCounts = await nim.V2NIMLocalConversationService.getUnreadCountByFilter({ ignoreMuted: true })
Node.js/Electron
TypeScriptconst count = await v2.localConversationService.getUnreadCountByFilter({ conversationTypes: [1, 2] })
HarmonyOS
TypeScriptlet filter: V2NIMLocalConversationFilter = {
  conversationTypes: [V2NIMConversationType.V2NIM_CONVERSATION_TYPE_P2P]
}
try {
  let unreadCount: number = await this.localConversationService.getUnreadCountByFilter(filter)
  // success
} catch (e) {
  // fail
}

返回参数

Android/iOS/macOS/Windows

无返回值。

Web/uni-app/小程序/Node.js/Electron/HarmonyOS

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

相关回调

Android/macOS/Windows
  • 请求成功,返回 V2NIMSuccessCallback 回调,包含过滤后的本地会话列表的消息总未读数。
  • 请求失败,返回 V2NIMFailuerCallback 回调,包含会话相关错误码。
iOS
  • 请求成功,返回 V2NIMLocalConversationUnreadCountCallback 回调,可自定义设置。
  • 请求失败,返回 V2NIMFailuerCallback 回调,包含会话相关错误码。
Web/uni-app/小程序/Node.js/Electron/HarmonyOS

无。

clearTotalUnreadCount

接口描述

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

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

参数说明

Android
Javavoid clearTotalUnreadCount(V2NIMSuccessCallback<Void> success, V2NIMFailureCallback failure);
参数名称 类型 是否必填 说明
success V2NIMSuccessCallback 清零成功回调。
failure V2NIMFailureCallback 清零失败回调,返回 错误码
iOS
Objective-C- (void)clearTotalUnreadCount:(V2NIMSuccessCallback)success
                      failure:(V2NIMFailureCallback)failure;
参数名称 类型 是否必填 说明
success V2NIMSuccessCallback 清零成功回调。
failure V2NIMFailureCallback 清零失败回调,返回 错误码
macOS/Windows
C++virtual void clearTotalUnreadCount(const V2NIMSuccessCallback<void>& success, const V2NIMFailureCallback& failure) = 0;
参数名称 类型 是否必填 说明
success V2NIMSuccessCallback 清零成功回调。
failure V2NIMFailureCallback 清零失败回调,返回 错误码
Web/uni-app/小程序
TypeScriptclearTotalUnreadCount(): Promise<void>

无参数。

Node.js/Electron
TypeScriptclearTotalUnreadCount(): Promise<void>

无参数。

HarmonyOS
TypeScriptclearTotalUnreadCount(): Promise<void>

无参数。

示例代码

Android
JavaNIMClient.getService(V2NIMLocalConversationService.class).clearTotalUnreadCount(new V2NIMSuccessCallback<Void>() {
  @Override
  public void onSuccess(Void unused) {
   // 清除成功
  }
}, new V2NIMFailureCallback() {
  @Override
  public void onFailure(V2NIMError error) {
   // 清除失败
  }
});
iOS
Objective-C[[NIMSDK sharedSDK].v2LocalConversationService clearTotalUnreadCount:^(void) {
        // 清除成功
    } failure:^(V2NIMError *error) {
        // 清除失败
    }];
macOS/Windows
C++localConversationService.clearTotalUnreadCount(
    []() {
        // clear total unread count succeeded
    },
    [](V2NIMError error) {
        // clear total unread count failed, handle error
    });
Web/uni-app/小程序
TypeScriptawait nim.V2NIMLocalConversationService.clearTotalUnreadCount()
Node.js/Electron
TypeScriptawait v2.localConversationService.clearTotalUnreadCount()
HarmonyOS
TypeScripttry {
  await this.localConversationService.clearTotalUnreadCount()
  // success
} catch (e) {
  // fail
}

返回参数

Android/iOS/macOS/Windows

无返回值。

Web/uni-app/小程序/Node.js/Electron/HarmonyOS

Promise<void>

相关回调

Android/iOS/macOS/Windows
  • 请求成功,返回 V2NIMSuccessCallback 回调。清零成功,返回 onTotalUnreadCountChangedonConversationChangedonUnreadCountChangedByFilter 回调。
  • 请求失败,返回 V2NIMFailuerCallback 回调,包含会话相关错误码。
Web/uni-app/小程序/HarmonyOS

清零成功,返回 onTotalUnreadCountChangedonConversationChangedonUnreadCountChangedByFilter 回调。

Node.js/Electron

清零成功,返回 totalUnreadCountChangedconversationChangedunreadCountChangedByFilter 回调。

clearUnreadCountByIds

接口描述

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

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

参数说明

Android
Javavoid clearUnreadCountByIds(@NonNull List<String> conversationIds, V2NIMSuccessCallback<List<V2NIMLocalConversationOperationResult>> success, V2NIMFailureCallback failure);
参数名称 类型 是否必填 说明
conversationIds List<String> 会话 ID 列表。单次调用上限为 10 条。
不可为空,否则返回 191004 参数错误。
success V2NIMSuccessCallback 清零成功回调,返回 List<V2NIMLocalConversationOperationResult>,仅包含清零失败的会话 ID 及相关错误码。
failure V2NIMFailureCallback 清零失败回调,返回 错误码
iOS
Objective-C- (void)clearUnreadCountByIds:(NSArray<NSString *> *)conversationIds
                      success:(V2NIMLocalConversationOperationResultListCallback)success
                      failure:(V2NIMFailureCallback)failure;
参数名称 类型 是否必填 说明
conversationIds NSArray<NSString *> 会话 ID 列表。单次调用上限为 10 条。
不可为空,否则返回 191004 参数错误。
success V2NIMLocalConversationOperationResultListCallback 清零成功回调,可自定义设置。
failure V2NIMFailureCallback 清零失败回调,返回 错误码
macOS/Windows
C++virtual void clearUnreadCountByIds(const nstd::vector<nstd::string>& conversationIds,
    const V2NIMSuccessCallback<const nstd::vector<V2NIMLocalConversationOperationResult>&>& success,
    const V2NIMFailureCallback& failure) = 0;
参数名称 类型 是否必填 说明
conversationIds nstd::vector<nstd::string> 会话 ID 列表。单次调用上限为 10 条。
不可为空,否则返回 191004 参数错误。
success V2NIMSuccessCallback 清零成功回调,返回 V2NIMLocalConversationOperationResult 列表,仅包含清零失败的会话 ID 及相关错误码。
failure V2NIMFailureCallback 清零失败回调,返回 错误码
Web/uni-app/小程序
TypeScriptclearUnreadCountByIds(conversationIds: string[]): Promise<V2NIMLocalConversationOperationResult[]>
参数名称 类型 是否必填 说明
conversationIds String[] 会话 ID 列表。单次调用上限为 10 条。
不可为空,否则返回 191004 参数错误。
Node.js/Electron
TypeScriptclearUnreadCountByIds(conversationIds): Promise<V2NIMLocalConversationOperationResult[]>
参数名称 类型 是否必填 说明
conversationIds String[] 会话 ID 列表。单次调用上限为 10 条。
不可为空,否则返回 191004 参数错误。
HarmonyOS
TypeScriptclearUnreadCountByIds(conversationIds: string[]): Promise<V2NIMLocalConversationOperationResult[]>
参数名称 类型 是否必填 说明
conversationIds String[] 会话 ID 列表。单次调用上限为 10 条。
不可为空,否则返回 191004 参数错误。

示例代码

Android
JavaList<String> conversationIds = new ArrayList<>();
conversationIds.add("cjl|1|cjl1");
conversationIds.add("cjl|2|43243253");
NIMClient.getService(V2NIMLocalConversationService.class).clearUnreadCountByIds(conversationIds, new V2NIMSuccessCallback<List<V2NIMLocalConversationOperationResult>>() {
  @Override
  public void onSuccess(List<V2NIMLocalConversationOperationResult> result) {
   // 清除成功,返回会话ID操作失败的列表
  }
}, new V2NIMFailureCallback() {
  @Override
  public void onFailure(V2NIMError error) {
   // 清除失败
  }
});
iOS
Objective-CNSMutableArray *conversationIds = [[NSMutableArray alloc] init];
[conversationIds addObject:@"cjl|1|cjl1"];
[conversationIds addObject:@"cjl|2|43243253"];

[[NIMSDK sharedSDK].v2LocalConversationService clearUnreadCountByIds:conversationIds success:^(NSArray<V2NIMLocalConversationOperationResult *> *result) {
    // 清除成功,返回会话ID操作失败的列表
} failure:^(V2NIMError *error) {
    // 清除失败
}];
macOS/Windows
C++auto conversationIds = nstd::vector<nstd::string>();
conversationIds.emplace_back(V2NIMConversationIdUtil::p2pConversationId("account1"));
conversationIds.emplace_back(V2NIMConversationIdUtil::p2pConversationId("account2"));
localConversationService.clearUnreadCountByIds(
    conversationIds,
    [](nstd::vector<V2NIMLocalConversationOperationResult> failedList) {
        // clear unread count succeeded
    },
    [](V2NIMError error) {
        // clear unread count failed, handle error
    });
Web/uni-app/小程序
TypeScriptconst results = await nim.V2NIMLocalConversationService.clearUnreadCountByIds(["CONVERSATION_ID1", "CONVERSATION_ID2"])
Node.js/Electron
TypeScriptconst result = await v2.localConversationService.clearUnreadCountByIds(['conversation1', 'conversation2'])
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
}

返回参数

Android/iOS/macOS/Windows

无返回值。

Web/uni-app/小程序/Node.js/Electron/HarmonyOS

相关回调

Android/macOS/Windows
  • 请求成功,返回 V2NIMSuccessCallback 回调。清零成功,返回 onTotalUnreadCountChangedonConversationChangedonUnreadCountChangedByFilter 回调。
  • 请求失败,返回 V2NIMFailuerCallback 回调,包含会话相关错误码。
iOS
  • 请求成功,返回 V2NIMLocalConversationOperationResultListCallback 回调。清零成功,返回 onTotalUnreadCountChangedonConversationChangedonUnreadCountChangedByFilter 回调。
  • 请求失败,返回 V2NIMFailuerCallback 回调,包含会话相关错误码。
Web/uni-app/小程序/HarmonyOS

清零成功,返回 onTotalUnreadCountChangedonConversationChangedonUnreadCountChangedByFilter 回调。

Node.js/Electron

清零成功,返回 totalUnreadCountChangedconversationChangedunreadCountChangedByFilter 回调。

clearUnreadCountByTypes

接口描述

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

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

参数说明

Android
Javavoid clearUnreadCountByTypes(@NonNull List<V2NIMConversationType> conversationTypes, V2NIMSuccessCallback<Void> success, V2NIMFailureCallback failure);
参数名称 类型 是否必填 说明
conversationTypes List<V2NIMConversationType> 会话类型。
success V2NIMSuccessCallback 清零成功回调。
failure V2NIMFailureCallback 清零失败回调,返回 错误码
iOS
Objective-C- (void)clearUnreadCountByTypes:(NSArray<NSNumber *> *)conversationTypes
                        success:(V2NIMSuccessCallback)success
                        failure:(V2NIMFailureCallback)failure;
参数名称 类型 是否必填 说明
conversationTypes NSArray<NSNumber *> 会话类型。
success V2NIMSuccessCallback 清零成功回调。
failure V2NIMFailureCallback 清零失败回调,返回 错误码
macOS/Windows
C++virtual void clearUnreadCountByTypes(const nstd::vector<V2NIMConversationType>& conversationTypes,
    const V2NIMSuccessCallback<void>& success,
    const V2NIMFailureCallback& failure) = 0;
参数名称 类型 是否必填 说明
conversationTypes nstd::vector<V2NIMConversationType> 会话类型。
success V2NIMSuccessCallback 清零成功回调。
failure V2NIMFailureCallback 清零失败回调,返回 错误码
Web/uni-app/小程序
TypeScriptclearUnreadCountByTypes(types: V2NIMConversationType[]): Promise<void>
参数名称 类型 是否必填 说明
types V2NIMConversationType[] 会话类型。
Node.js/Electron
TypeScriptclearUnreadCountByTypes(conversationTypes): Promise<void>
参数名称 类型 是否必填 说明
conversationTypes V2NIMConversationType[] 会话类型。
HarmonyOS
TypeScriptclearUnreadCountByTypes(types: V2NIMConversationType[]): Promise<void>
参数名称 类型 是否必填 说明
types V2NIMConversationType[] 会话类型。

示例代码

Android
JavaList<V2NIMConversationType> conversationTypes = new ArrayList<>();
conversationTypes.add(V2NIMConversationType.V2NIM_CONVERSATION_TYPE_P2P);
NIMClient.getService(V2NIMLocalConversationService.class).clearUnreadCountByTypes(conversationTypes, new V2NIMSuccessCallback<Void>() {
  @Override
  public void onSuccess(Void unused) {
   // 清除成功
  }
}, new V2NIMFailureCallback() {
  @Override
  public void onFailure(V2NIMError error) {
   // 清除失败
  }
});
iOS
Objective-CNSMutableArray *conversationTypes = [[NSMutableArray alloc] init];
[conversationTypes addObject:@(V2NIMConversationTypeP2P)];

[[NIMSDK sharedSDK].v2LocalConversationService clearUnreadCountByTypes:conversationTypes success:^(id unused) {
    // 清除成功
} failure:^(V2NIMError *error) {
    // 清除失败
}];
macOS/Windows
C++localConversationService.clearUnreadCountByTypes(
    {V2NIM_CONVERSATION_TYPE_P2P, V2NIM_CONVERSATION_TYPE_TEAM},
    []() {
        // clear unread count succeeded
    },
    [](V2NIMError error) {
        // clear unread count failed, handle error
    });
Web/uni-app/小程序
TypeScriptawait nim.V2NIMLocalConversationService.clearUnreadCountByTypes([V2NIMConst.V2NIMConversationType.V2NIM_CONVERSATION_TYPE_P2P])
Node.js/Electron
TypeScriptawait v2.localConversationService.clearUnreadCountByTypes([1, 2])
HarmonyOS
TypeScriptlet conversationTypes:V2NIMConversationType[] = [V2NIMConversationType.V2NIM_CONVERSATION_TYPE_P2P]
try {
  await this.localConversationService.clearUnreadCountByTypes(conversationTypes)
  // success
} catch (e) {
  // fail
}

返回参数

Android/iOS/macOS/Windows

无返回值。

Web/uni-app/小程序/Node.js/Electron/HarmonyOS

Promise<void>

相关回调

Android/iOS/macOS/Windows
  • 请求成功,返回 V2NIMSuccessCallback 回调。清零成功,返回 onTotalUnreadCountChangedonConversationChangedonUnreadCountChangedByFilter 回调。
  • 请求失败,返回 V2NIMFailuerCallback 回调,包含会话相关错误码。
Web/uni-app/小程序/HarmonyOS

清零成功,返回 onTotalUnreadCountChangedonConversationChangedonUnreadCountChangedByFilter 回调。

Node.js/Electron

清零成功,返回 totalUnreadCountChangedconversationChangedunreadCountChangedByFilter 回调。

subscribeUnreadCountByFilter

接口描述

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

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

该接口为同步接口。

参数说明

Android
JavaV2NIMError subscribeUnreadCountByFilter(@NonNull V2NIMLocalConversationFilter filter);
参数名称 类型 是否必填 说明
filter V2NIMLocalConversationFilter 本地会话过滤对象。
  • 如果该对象参数均为空,则返回 191004 错误码。
  • 如果该对象设置多个参数且生效,则返回参数对应的多个回调。如果设置多个参数但有参数错误未生效,则不触发任何回调。
iOS
Objective-C- (V2NIMError *)subscribeUnreadCountByFilter:(V2NIMLocalConversationFilter *)filter;
参数名称 类型 是否必填 说明
filter V2NIMLocalConversationFilter 本地会话过滤对象。
  • 如果该对象参数均为空,则返回 191004 错误码。
  • 如果该对象设置多个参数且生效,则返回参数对应的多个回调。如果设置多个参数但有参数错误未生效,则不触发任何回调。
macOS/Windows
C++virtual nstd::optional<V2NIMError> subscribeUnreadCountByFilter(const V2NIMLocalConversationFilter& filter) = 0;
参数名称 类型 是否必填 说明
filter V2NIMLocalConversationFilter 本地会话过滤对象。
  • 如果该对象参数均为空,则返回 191004 错误码。
  • 如果该对象设置多个参数且生效,则返回参数对应的多个回调。如果设置多个参数但有参数错误未生效,则不触发任何回调。
Web/uni-app/小程序
TypeScriptsubscribeUnreadCountByFilter(filter: V2NIMLocalConversationFilter): void
参数名称 类型 是否必填 说明
filter V2NIMLocalConversationFilter 本地会话过滤对象。
  • 如果该对象参数均为空,则返回 191004 错误码。
  • 如果该对象设置多个参数且生效,则返回参数对应的多个回调。如果设置多个参数但有参数错误未生效,则不触发任何回调。
Node.js/Electron
TypeScriptsubscribeUnreadCountByFilter(filter): null | V2NIMError
参数名称 类型 是否必填 说明
filter V2NIMLocalConversationFilter 本地会话过滤对象。
  • 如果该对象参数均为空,则返回 191004 错误码。
  • 如果该对象设置多个参数且生效,则返回参数对应的多个回调。如果设置多个参数但有参数错误未生效,则不触发任何回调。
HarmonyOS
TypeScriptsubscribeUnreadCountByFilter(filter: V2NIMLocalConversationFilter): void
参数名称 类型 是否必填 说明
filter V2NIMLocalConversationFilter 本地会话过滤对象。
  • 如果该对象参数均为空,则返回 191004 错误码。
  • 如果该对象设置多个参数且生效,则返回参数对应的多个回调。如果设置多个参数但有参数错误未生效,则不触发任何回调。

示例代码

Android
JavaList<V2NIMConversationType> conversationTypes = new ArrayList<>();
conversationTypes.add(V2NIMConversationType.V2NIM_CONVERSATION_TYPE_P2P);
//是否忽略免打扰
boolean ignoreMuted = true;
V2NIMLocalConversationFilter filter = new V2NIMLocalConversationFilter(conversationTypes,ignoreMuted);
NIMClient.getService(V2NIMLocalConversationService.class).subscribeUnreadCountByFilter(filter);
iOS
Objective-CNSMutableArray<NSNumber *> *conversationTypes = [[NSMutableArray alloc] init];
[conversationTypes addObject:@(V2NIM_CONVERSATION_TYPE_P2P)];

// 是否忽略免打扰
BOOL ignoreMuted = YES;

V2NIMLocalConversationFilter *filter = [[V2NIMLocalConversationFilter alloc] init];
filter.conversationTypes = conversationTypes;
filter.ignoreMuted = ignoreMuted;

[[NIMSDK sharedSDK].v2LocalConversationService subscribeUnreadCountByFilter:filter];
macOS/Windows
C++V2NIMLocalConversationFilter filter;
filter.conversationTypes = {V2NIM_CONVERSATION_TYPE_P2P, V2NIM_CONVERSATION_TYPE_TEAM};
auto error = localConversationService.subscribeUnreadCountByFilter(filter);
if (error) {
    // subscribe failed, handle error
}
Web/uni-app/小程序
TypeScript// Eg. Subscribe to P2P conversation and ignore those muted conversation
nim.V2NIMLocalConversationService.subscribeUnreadCountByFilter({
  conversationTypes: [V2NIMConst.V2NIMConversationType.V2NIM_CONVERSATION_TYPE_P2P];
  ignoreMuted: true;
})
Node.js/Electron
TypeScriptawait v2.localConversationService.subscribeUnreadCountByFilter({ conversationTypes: [1, 2] })
HarmonyOS
TypeScriptconst filter: V2NIMLocalConversationFilter = {
  conversationTypes: [V2NIMConversationType.V2NIM_CONVERSATION_TYPE_P2P]
}
try {
  this.localConversationService.subscribeUnreadCountByFilter(filter)
  // success
} catch (e) {
  // fail
}

返回参数

无返回值。

相关回调

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

unsubscribeUnreadCountByFilter

接口描述

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

该接口为同步接口。

参数说明

Android
JavaV2NIMError unsubscribeUnreadCountByFilter(@NonNull V2NIMLocalConversationFilter filter);
参数名称 类型 是否必填 说明
filter V2NIMLocalConversationFilter 本地会话过滤对象。如果该对象参数均为空,则返回 191004 错误码。
iOS
Objective-C- (void)unsubscribeUnreadCountByFilter:(V2NIMLocalConversationFilter *)filter;
参数名称 类型 是否必填 说明
filter V2NIMLocalConversationFilter 本地会话过滤对象。如果该对象参数均为空,则返回 191004 错误码。
macOS/Windows
C++virtual nstd::optional<V2NIMError> unsubscribeUnreadCountByFilter(const V2NIMLocalConversationFilter& filter) = 0;
参数名称 类型 是否必填 说明
filter V2NIMLocalConversationFilter 本地会话过滤对象。如果该对象参数均为空,则返回 191004 错误码。
Web/uni-app/小程序
TypeScriptunsubscribeUnreadCountByFilter(filter: V2NIMLocalConversationFilter): void
参数名称 类型 是否必填 说明
filter V2NIMLocalConversationFilter 本地会话过滤对象。如果该对象参数均为空,则返回 191004 错误码。
Node.js/Electron
TypeScriptunsubscribeUnreadCountByFilter(filter): null | V2NIMError
参数名称 类型 是否必填 说明
filter V2NIMLocalConversationFilter 本地会话过滤对象。如果该对象参数均为空,则返回 191004 错误码。
HarmonyOS
TypeScriptunsubscribeUnreadCountByFilter(filter: V2NIMLocalConversationFilter): void
参数名称 类型 是否必填 说明
filter V2NIMLocalConversationFilter 本地会话过滤对象。如果该对象参数均为空,则返回 191004 错误码。

示例代码

Android
JavaList<V2NIMConversationType> conversationTypes = new ArrayList<>();
conversationTypes.add(V2NIMConversationType.V2NIM_CONVERSATION_TYPE_P2P);
//是否忽略免打扰
boolean ignoreMuted = true;
V2NIMLocalConversationFilter filter = new V2NIMLocalConversationFilter(conversationTypes,ignoreMuted);
NIMClient.getService(V2NIMLocalConversationService.class).unsubscribeUnreadCountByFilter(filter);
iOS
Objective-CNSMutableArray *conversationTypes = [[NSMutableArray alloc] init];
[conversationTypes addObject:@(V2NIM_CONVERSATION_TYPE_P2P)];

// 是否忽略免打扰
BOOL ignoreMuted = YES;

V2NIMLocalConversationFilter *filter = [[V2NIMLocalConversationFilter alloc] init];
filter.conversationTypes = conversationTypes;
filter.ignoreMuted = ignoreMuted;

[[NIMSDK sharedSDK].v2LocalConversationService unsubscribeUnreadCountByFilter:filter];
macOS/Windows
C++auto error = localConversationService.unsubscribeUnreadCountByFilter(filter);
if (error) {
    // unsubscribe failed, handle error
}
Web/uni-app/小程序
TypeScript// Eg. Subscribe to P2P conversation and ignore those muted conversation
const filter = {
  conversationTypes: [V2NIMConst.V2NIMConversationType.V2NIM_CONVERSATION_TYPE_P2P];
  ignoreMuted: true;
}
nim.V2NIMLocalConversationService.subscribeUnreadCountByFilter(filter)
nim.V2NIMLocalConversationService.unsubscribeUnreadCountByFilter(filter)
Node.js/Electron
TypeScriptawait v2.localConversationService.unsubscribeUnreadCountByFilter({ conversationTypes: [1, 2] })
HarmonyOS
TypeScriptconst filter: V2NIMLocalConversationFilter = {
  conversationTypes: [V2NIMConversationType.V2NIM_CONVERSATION_TYPE_P2P]
}
try {
  this.localConversationService.unsubscribeUnreadCountByFilter(filter)
  // success
} catch (e) {
  // fail
}

返回参数

无。

markConversationRead

接口描述

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

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

参数说明

Android
Javavoid markConversationRead(String conversationId, V2NIMSuccessCallback<Long> success, V2NIMFailureCallback failure);
参数名称 类型 是否必填 说明
conversationId String 会话 ID,如果为空、不合法、不存在则返回 191004 参数错误。
success V2NIMSuccessCallback 标记成功回调,返回 readTime
failure V2NIMFailureCallback 标记失败回调,返回 错误码
iOS
Objective-C- (void)markConversationRead:(NSString *)conversationId
                     success:(V2NIMLocalConversationReadTimeCallback)success
                     failure:(V2NIMFailureCallback)failure;
参数名称 类型 是否必填 说明
conversationId NSString 会话 ID,如果为空、不合法、不存在则返回 191004 参数错误。
success V2NIMLocalConversationReadTimeCallback 标记成功回调,可自定义。
failure V2NIMFailureCallback 标记失败回调,返回 错误码
macOS/Windows
C++virtual void markConversationRead(const nstd::string& conversationId,
    const V2NIMSuccessCallback<time_t>& success,
    const V2NIMFailureCallback& failure) = 0;
参数名称 类型 是否必填 说明
conversationId nstd::string 会话 ID,如果为空、不合法、不存在则返回 191004 参数错误。
success V2NIMSuccessCallback 标记成功回调,返回 readTime
failure V2NIMFailureCallback 标记失败回调,返回 错误码
Web/uni-app/小程序
TypeScriptmarkConversationRead(conversationId: string): Promise<number>
参数名称 类型 是否必填 说明
conversationId string 会话 ID,如果为空、不合法、不存在则返回 191004 参数错误。
Node.js/Electron
TypeScriptmarkConversationRead(conversationId): Promise<number>
参数名称 类型 是否必填 说明
conversationId string 会话 ID,如果为空、不合法、不存在则返回 191004 参数错误。
HarmonyOS
TypeScriptmarkConversationRead(conversationId: string): Promise<void>
参数名称 类型 是否必填 说明
conversationId string 会话 ID,如果为空、不合法、不存在则返回 191004 参数错误。

示例代码

Android
JavaString conversationId = "cjl|1|cjl1";
NIMClient.getService(V2NIMLocalConversationService.class).markConversationRead(conversationId, new V2NIMSuccessCallback<Long>() {
  @Override
  public void onSuccess(Long result) {
   // 标记成功,返回会话已读时间戳,单位毫秒
  }
}, new V2NIMFailureCallback() {
  @Override
  public void onFailure(V2NIMError error) {
   // 标记失败
  }
});
iOS
Objective-CNSString *conversationId = @"cjl|1|cjl1";
[[NIMSDK sharedSDK].v2LocalConversationService markConversationRead:conversationId success:^(NSTimeInterval result) {
    // 标记成功,返回会话已读时间戳,单位毫秒
} failure:^(V2NIMError *error) {
    // 标记失败
}];
macOS/Windows
C++localConversationService.markConversationRead(
    "conversationId",
    []() {
        // mark conversation read succeeded
    },
    [](V2NIMError error) {
        // mark conversation read failed, handle error
    )};
Web/uni-app/小程序
TypeScriptconst readTime = await nim.V2NIMLocalConversationService.markConversationRead("CONVERSATION_ID")
Node.js/Electron
TypeScriptconst time = await v2.localConversationService.markConversationRead('conversation1')
HarmonyOS
TypeScriptawait this.localConversationService.markConversationRead('me|1|you')

返回参数

Android/iOS/macOS/Windows

无返回值。

Web/uni-app/小程序/Node.js/Electron/HarmonyOS

Promise<number> 标记时间

相关回调

Android/macOS/Windows
  • 请求成功,返回 V2NIMSuccessCallback 回调。标记成功,返回 readTime
  • 请求失败,返回 V2NIMFailuerCallback 回调,包含会话相关错误码。
iOS
  • 请求成功,返回 V2NIMLocalConversationReadTimeCallback 回调,可自定义。
  • 请求失败,返回 V2NIMFailuerCallback 回调,包含会话相关错误码。
Web/uni-app/小程序/Node.js/Electron/HarmonyOS

无。

getConversationReadTime

接口描述

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

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

参数说明

Android
Javavoid getConversationReadTime(String conversationId, V2NIMSuccessCallback<Long> success, V2NIMFailureCallback failure);
参数名称 类型 是否必填 说明
conversationId String 会话 ID,如果为空、不合法、不存在则返回 191004 参数错误。
success V2NIMSuccessCallback 查询成功回调,返回 readTime
failure V2NIMFailureCallback 查询失败回调,返回 错误码
iOS
Objective-C- (void)getConversationReadTime:(NSString *)conversationId
                        success:(V2NIMLocalConversationReadTimeCallback)success
                        failure:(V2NIMFailureCallback)failure;
参数名称 类型 是否必填 说明
conversationId NSString 会话 ID,如果为空、不合法、不存在则返回 191004 参数错误。
success V2NIMLocalConversationReadTimeCallback 查询成功回调,可自定义。
failure V2NIMFailureCallback 查询失败回调,返回 错误码
macOS/Windows
C++virtual void getConversationReadTime(const nstd::string& conversationId,
    const V2NIMSuccessCallback<time_t>& success,
    const V2NIMFailureCallback& failure) = 0;
参数名称 类型 是否必填 说明
conversationId nstd::string 会话 ID,如果为空、不合法、不存在则返回 191004 参数错误。
success V2NIMSuccessCallback 查询成功回调,返回 readTime
failure V2NIMFailureCallback 查询失败回调,返回 错误码
Web/uni-app/小程序
TypeScriptgetConversationReadTime(conversationId: string): Promise<number>
参数名称 类型 是否必填 说明
conversationId string 会话 ID,如果为空、不合法、不存在则返回 191004 参数错误。
Node.js/Electron
TypeScriptgetConversationReadTime(conversationId): Promise<number>
参数名称 类型 是否必填 说明
conversationId string 会话 ID,如果为空、不合法、不存在则返回 191004 参数错误。
HarmonyOS
TypeScriptgetConversationReadTime(conversationId: string): Promise<number>
参数名称 类型 是否必填 说明
conversationId string 会话 ID,如果为空、不合法、不存在则返回 191004 参数错误。

示例代码

Android
JavaString conversationId = "cjl|1|cjl1";
NIMClient.getService(V2NIMLocalConversationService.class).getConversationReadTime(conversationId, new V2NIMSuccessCallback<Long>() {
  @Override
  public void onSuccess(Long result) {
   // 获取成功,返回会话已读时间戳,单位毫秒
  }
}, new V2NIMFailureCallback() {
  @Override
  public void onFailure(V2NIMError error) {

  }
});
iOS
Objective-CNSString *conversationId = @"cjl|1|cjl1";
[[NIMSDK sharedSDK].v2LocalConversationService getConversationReadTime:conversationId success:^(NSTimeInterval result) {
    // 获取成功,返回会话已读时间戳,单位秒
} failure:^(V2NIMError *error) {
    
}];
macOS/Windows
C++localConversationService.getConversationReadTime(
    "conversationId",
    [](time_t readTime) {
        // get conversation read time succeeded
    },
    [](V2NIMError error) {
        // get conversation read time failed, handle error
    )};
Web/uni-app/小程序
TypeScriptconst readTime = await nim.V2NIMLocalConversationService.getConversationReadTime("CONVERSATION_ID")
Node.js/Electron
TypeScriptconst time = await v2.localConversationService.getConversationReadTime('conversation1')
HarmonyOS
TypeScriptawait this.localConversationService.getConversationReadTime('me|1|you')

返回参数

Android/iOS/macOS/Windows

无返回值。

Web/uni-app/小程序/Node.js/Electron/HarmonyOS

Promise<number> 时间戳

相关回调

Android/macOS/Windows
  • 请求成功,返回 V2NIMSuccessCallback 回调。标记成功,返回 readTime
  • 请求失败,返回 V2NIMFailuerCallback 回调,包含会话相关错误码。
iOS
  • 请求成功,返回 V2NIMConversationReadTimeCallback 回调,可自定义。
  • 请求失败,返回 V2NIMFailuerCallback 回调,包含会话相关错误码。
Web/uni-app/小程序/Node.js/Electron/HarmonyOS

无。

setCurrentConversation

接口描述

设置当前正在聊天的会话。

参数说明

Android
JavaV2NIMSyncResult<Void> setCurrentConversation(String conversationId);
参数名称 类型 是否必填 说明
conversationId String 会话 ID。
  • 如果为空字符串或 null,均表示不设置当前会话。
  • 如果传入具体的会话(包括单聊、高级群以及超大群),且当前正处于该会话,则不触发未读变更以及在线通知。
iOS
Objective-C- (void)setCurrentConversation:(NSString *)conversationId
                         error:(V2NIMError * __autoreleasing _Nullable * _Nullable)error;
参数名称 类型 是否必填 说明
conversationId NSString 会话 ID。
  • 如果为空字符串或 null,均表示不设置当前会话。
  • 如果传入具体的会话(包括单聊、高级群以及超大群),且当前正处于该会话,则不触发未读变更以及在线通知。
macOS/Windows
C++virtual nstd::optional<V2NIMError> setCurrentConversation(const std::optional<nstd::string>& conversationId) = 0;
参数名称 类型 是否必填 说明
conversationId nstd::optional<nstd::string> 会话 ID。
  • 如果为空字符串或 null,均表示不设置当前会话。
  • 如果传入具体的会话(包括单聊、高级群以及超大群),且当前正处于该会话,则不触发未读变更以及在线通知。
Web/uni-app/小程序
TypeScriptsetCurrentConversation(conversationId?: string): void
参数名称 类型 是否必填 说明
conversationId string 会话 ID。
  • 如果为空字符串或 null,均表示不设置当前会话。
  • 如果传入具体的会话(包括单聊、高级群以及超大群),且当前正处于该会话,则不触发未读变更以及在线通知。
Node.js/Electron
TypeScriptsetCurrentConversation(conversationId): null | V2NIMError
参数名称 类型 是否必填 说明
conversationId string 会话 ID。
  • 如果为空字符串或 null,均表示不设置当前会话。
  • 如果传入具体的会话(包括单聊、高级群以及超大群),且当前正处于该会话,则不触发未读变更以及在线通知。
HarmonyOS
TypeScriptsetCurrentConversation(conversationId: string | undefined): void
参数名称 类型 是否必填 说明
conversationId string 会话 ID。
  • 如果为空字符串或 null,均表示不设置当前会话。
  • 如果传入具体的会话(包括单聊、高级群以及超大群),且当前正处于该会话,则不触发未读变更以及在线通知。

示例代码

Android
JavaString conversationId = "cjl|1|cjl1";
V2NIMLocalConversationService conversationService = NIMClient.getService(V2NIMLocalConversationService.class);

V2NIMSyncResult<Void> result = conversationService.setCurrentConversation(conversationId);
if (result.isSuccess()) {
    // 设置当前会话成功
} else {
    // 设置当前会话失败,处理错误
    V2NIMError error = result.getError();
}
iOS
Objective-CNSString *conversationId = @"cjl|1|cjl1";
V2NIMError *error = nil;
[[[NIMSDK sharedSDK] v2LocalConversationService] setCurrentConversation:conversationId
                                                                  error:&error];
if (error) {
    // 设置当前会话失败,处理错误
} else {
    // 设置当前会话成功
}
macOS/Windows
C++std::string conversationId = "cjl|1|cjl1";
auto error = localConversationService.setCurrentConversation(conversationId);
if (error) {
    // set current conversation failed, handle error
}
Web/uni-app/小程序
TypeScriptnim.V2NIMLocalConversationService.setCurrentConversation("xxx1|1|xxx3")
Node.js/Electron
TypeScriptawait v2.localConversationService.setCurrentConversation('xxx1|1|xxx3')
HarmonyOS
TypeScriptnim.localConversationService.setCurrentConversation('xxx1|1|xxx3')

返回参数

无/错误信息。

相关回调

无。

getMessageListByServerIds

接口描述

根据消息 ID 列表在本地数据库查询消息。

参数说明

HarmonyOS
TypeScriptgetMessageListByServerIds(messageServerIds: string[]): Promise<V2NIMMessage[]>
参数名称 类型 是否必填 说明
messageServerIds string[] 需要查询的消息服务端 ID 列表。为空,或者数量为 0,返回参数错误。

示例代码

HarmonyOS
TypeScriptconst messages: V2NIMMessage[] = [msg1, msg2]
const messageServerIds: string[] = messages.map(item => {
  return item.messageServerId
})
try {
    const res = await nim.messageService.getMessageListByServerIds(messageServerIds)
    // success
} catch (e) {
    // failed.
}

返回参数

V2NIMMessage[] 查询到的消息列表。

相关回调

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