消息操作
更新时间: 2024/11/14 11:44:12
消息指会话内消息,在会话界面中展示,适用于单聊、群组、聊天室、圈组等场景。更多消息相关功能请参考 消息概述。
本文介绍消息收发等消息操作相关 API,在调用以下 API 前,您需要先完成 消息构建。
支持平台
本文内容适用的开发平台或框架如下表所示:
Android | iOS | macOS/Windows | Web/uni-app/小程序 | Node.js/Electron | HarmonyOS |
---|---|---|---|---|---|
✔️️ | ✔️️ | ✔️️ | ✔️️ | ✔️️ | ✔️️ |
API 概览
消息监听
API | 说明 | 起始版本 |
---|---|---|
addMessageListener | 注册消息相关监听器 | v10.2.0 |
removeMessageListener | 移除消息相关监听器 | v10.2.0 |
API | 说明 | 起始版本 |
---|---|---|
on("EventName") | 注册消息相关监听 | v10.2.0(对应 HarmonyOS v0.5.0) |
off("EventName") | 取消注册消息相关监听 | v10.2.0(对应 HarmonyOS v0.5.0) |
消息基础操作
API | 说明 | 起始版本 |
---|---|---|
sendMessage | 发送单条消息 | v10.2.0(对应 HarmonyOS v0.5.0) |
revokeMessage | 撤回指定消息 | v10.2.0(对应 HarmonyOS v0.5.0) |
getMessageList | 按条件分页获取会话内所有历史消息 | v10.2.0(对应 HarmonyOS v0.5.0) |
getMessageListByIds | 根据消息客户端 ID 获取历史消息(Web 端不支持) | v10.2.0(对应 HarmonyOS v0.5.0) |
deleteMessage | 删除单条消息 | v10.2.0(对应 HarmonyOS v0.5.0) |
deleteMessages | 批量删除消息 | v10.2.0(对应 HarmonyOS v0.5.0) |
clearHistoryMessage | 清空会话内历史消息 | v10.2.0(对应 HarmonyOS v0.5.0) |
updateMessageLocalExtension | 更新消息本地扩展字段(Web 端不支持) | v10.2.0(对应 HarmonyOS v0.5.0) |
insertMessageToLocal | 插入一条本地消息(Web 端不支持) | v10.2.0(对应 HarmonyOS v0.5.0) |
cancelMessageAttachmentUpload | 取消文件类附件上传 | v10.2.0(对应 HarmonyOS v0.5.0) |
modifyMessage | 更新消息,对消息进行二次编辑 | v10.4.0(对应 HarmonyOS v10.0.0) |
消息扩展操作
API | 说明 | 起始版本 |
---|---|---|
replyMessage | 回复指定消息 | v10.2.0(对应 HarmonyOS v0.5.0) |
getMessageListByRefers | 根据消息参考信息批量获取消息列表 | v10.2.0(对应 HarmonyOS v0.5.0) |
pinMessage | Pin 一条消息 | v10.2.0(对应 HarmonyOS v0.5.0) |
unpinMessage | 取消 PIN 一条消息 | v10.2.0(对应 HarmonyOS v0.5.0) |
updatePinMessage | 更新一条 PIN 消息 | v10.2.0(对应 HarmonyOS v0.5.0) |
getPinnedMessageList | 获取会话内所有 PIN 消息 | v10.2.0(对应 HarmonyOS v0.5.0) |
addQuickComment | 添加一条快捷评论 | v10.2.0(对应 HarmonyOS v0.5.0) |
removeQuickComment | 移除一条快捷评论 | v10.2.0(对应 HarmonyOS v0.5.0) |
getQuickCommentList | 获取指定消息的快捷评论列表 | v10.2.0(对应 HarmonyOS v0.5.0) |
addCollection | 添加一个收藏 | v10.2.0(对应 HarmonyOS v0.5.0) |
removeCollections | 移除收藏 | v10.2.0(对应 HarmonyOS v0.5.0) |
updateCollectionExtension | 更新收藏扩展字段 | v10.2.0(对应 HarmonyOS v0.5.0) |
getCollectionListByOption | 根据条件分页获取收藏列表 | v10.2.0(对应 HarmonyOS v0.5.0) |
sendP2PMessageReceipt | 发送单聊消息已读回执 | v10.2.0(对应 HarmonyOS v0.5.0) |
getP2PMessageReceipt | 获取单聊消息已读回执 | v10.2.0(对应 HarmonyOS v0.5.0) |
isPeerRead | 获取单聊消息是否已读 | v10.2.0(对应 HarmonyOS v0.5.0) |
sendTeamMessageReceipts | 发送群组消息已读回执 | v10.2.0(对应 HarmonyOS v0.5.0) |
getTeamMessageReceipts | 获取群组消息已读回执 | v10.2.0(对应 HarmonyOS v0.5.0) |
getTeamMessageReceiptDetail | 获取群组消息已读回执状态详情 | v10.2.0(对应 HarmonyOS v0.5.0) |
searchCloudMessages | 全文搜索云端历史消息 | v10.2.0(对应 HarmonyOS v0.5.0) |
getThreadMessageList | 分页获取云端 Thread 历史消息列表 | |
getLocalThreadMessageList | 分页获取本地 Thread 历史消息列表 |
消息解析相关
API | 说明 | 起始版本 |
---|---|---|
registerCustomAttachmentParser | 注册自定义消息附件解析器,解析自消息类型为 100 的消息附件 | v10.5.0 |
unregisterCustomAttachmentParser | 反注册自定义消息附件解析器 | v10.5.0 |
接口类
V2NIMMessageService
类提供消息操作接口,包括发送、回复、转发、删除、更新、获取消息,注册消息监听,以及 PIN 消息、快捷评论、收藏等进阶操作接口。
addMessageListener
接口描述
注册消息监听器。
注册成功后,当消息事件发生时,SDK 会返回对应的回调。
-
建议在初始化后调用该方法。
-
全局只需注册一次。
-
该方法为同步。
参数说明
Javavoid addMessageListener(V2NIMMessageListener listener);
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
listener |
V2NIMMessageListener |
是 | 消息相关监听器 |
Objective-C- (void)addMessageListener:(id<V2NIMMessageListener>)listener;
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
listener |
V2NIMMessageListener |
是 | 消息相关监听器 |
C++virtual void addMessageListener(V2NIMMessageListener listener) = 0;
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
listener |
V2NIMMessageListener |
是 | 消息相关监听器 |
示例代码
JavaV2NIMMessageService v2MessageService = NIMClient.getService(V2NIMMessageService.class);
V2NIMMessageListener messageListener = new V2NIMMessageListener() {
@Override
public void onSendMessage(V2NIMMessage message) {
}
@Override
public void onReceiveMessages(List<V2NIMMessage> messages) {
}
@Override
public void onReceiveP2PMessageReadReceipts(List<V2NIMP2PMessageReadReceipt> readReceipts) {
}
@Override
public void onReceiveTeamMessageReadReceipts(List<V2NIMTeamMessageReadReceipt> readReceipts) {
}
@Override
public void onMessageRevokeNotifications(List<V2NIMMessageRevokeNotification> revokeNotifications) {
}
@Override
public void onMessagePinNotification(V2NIMMessagePinNotification pinNotification) {
}
@Override
public void onMessageQuickCommentNotification(V2NIMMessageQuickCommentNotification quickCommentNotification) {
}
@Override
public void onMessageDeletedNotifications(List<V2NIMMessageDeletedNotification> messageDeletedNotifications) {
}
@Override
public void onClearHistoryNotifications(List<V2NIMClearHistoryNotification> clearHistoryNotifications) {
}
};
v2MessageService.addMessageListener(messageListener);
Objective-C[[[NIMSDK sharedSDK] v2MessageService] addMessageListener:listener];
C++V2NIMMessageListener listener;
listener.onReceiveMessages = [](nstd::vector<V2NIMMessage> messages) {
// receive messages
};
listener.onReceiveP2PMessageReadReceipts = [](nstd::vector<V2NIMP2PMessageReadReceipt> readReceipts) {
// receive p2p message read receipts
};
listener.onReceiveTeamMessageReadReceipts = [](nstd::vector<V2NIMTeamMessageReadReceipt> readReceipts) {
// receive team message read receipts
};
listener.onMessageRevokeNotifications = [](nstd::vector<V2NIMMessageRevokeNotification> revokeNotifications) {
// receive message revoke notifications
};
listener.onMessagePinNotification = [](V2NIMMessagePinNotification pinNotification) {
// receive message pin notification
};
listener.onMessageQuickCommentNotification = [](V2NIMMessageQuickCommentNotification quickCommentNotification) {
// receive message quick comment notification
};
listener.onMessageDeletedNotifications = [](nstd::vector<V2NIMMessageDeletedNotification> messageDeletedNotification) {
// receive message deleted notifications
};
listener.onClearHistoryNotifications = [](nstd::vector<V2NIMClearHistoryNotification> clearHistoryNotification) {
// receive clear history notifications
};
messageService.addMessageListener(listener);
返回参数
无。
removeMessageListener
接口描述
移除消息监听器。
该方法为同步。
参数说明
Javavoid removeMessageListener(V2NIMMessageListener listener);
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
listener |
V2NIMMessageListener |
是 | 消息相关监听器 |
Objective-C- (void)removeMessageListener:(id<V2NIMMessageListener>)listener;
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
listener |
V2NIMMessageListener |
是 | 消息相关监听器 |
C++virtual void removeMessageSendListener(V2NIMMessageListener listener) = 0;
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
listener |
V2NIMMessageListener |
是 | 消息相关监听器 |
示例代码
JavaV2NIMMessageService v2MessageService = NIMClient.getService(V2NIMMessageService.class);
v2MessageService.removeMessageListener(messageListener);
Objective-C[[[NIMSDK sharedSDK] v2MessageService] removeMessageListener:listener];
C++V2NIMMessageListener listener;
conversationService.addMessageListener(listener);
messageService.removeMessageListener(listener);
返回参数
无。
on("EventName")
接口描述
注册消息相关监听。
注册成功后,当消息事件发生时,SDK 会触发相关回调通知。
-
建议在初始化后调用该方法。
-
全局只需注册一次。
-
该方法为同步。
参数说明
TypeScriptexport interface NIMEBaseServiceInterface<I extends NIMEBaseListener> {
/**
* 继承自 EventEmitter3 的监听事件方法。
*/
on<T extends keyof I>(eventName: T, fn: (...args: I[T]) => void): void;
/**
* 继承自 EventEmitter3 的监听事件方法。
*/
once<T extends keyof I>(eventName: T, fn: (...args: I[T]) => void): void;
/**
* 继承自 EventEmitter3 的取消监听方法。
*/
off<T extends keyof I>(eventName: T, fn: (...args: I[T]) => void): void;
/**
* 继承自 EventEmitter3 的移除事件方法。
*/
removeAllListeners<T extends keyof I>(eventName?: T): void;
}
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
eventName |
V2NIMMessageListener |
是 | 事件名称:onSendMessage :本端发送消息状态回调,本端发送消息或插入消息成功后,SDK 会返回该回调。onReceiveMessages :消息接收回调,返回消息列表,包括本端接收的消息及其他端同步的消息。onReceiveP2PMessageReadReceipts :单聊消息已读回调,返回已读回执列表。onReceiveTeamMessageReadReceipts :群组消息已读回调,返回已读回执列表。onMessageRevokeNotifications :消息撤回通知回调,返回消息撤回通知列表。onMessagePinNotification :PIN 消息状态变化通知回调,返回 PIN 消息状态变化通知。onMessageQuickCommentNotification :消息快捷评论通知回调,返回快捷评论通知。onMessageDeletedNotifications :消息被删除回调,返回被删除的消息列表,包括本端删除的消息及其他端(单聊、群组)删除的消息。onClearHistoryNotifications :会话内历史消息清除回调,返回被清除的历史消息列表,包括本端清除的历史消息及其他端(单聊、群组)清除的历史消息。 |
fn |
function | 是 | 监听事件的回调函数。当事件触发时,会调用该函数进行处理。 |
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;
/**
* 继承自 EventEmitter3 的取消监听方法。
*/
off<T extends keyof I>(eventName: T, fn: (...args: I[T]) => void): void;
/**
* 继承自 EventEmitter3 的移除事件方法。
*/
removeAllListeners<T extends keyof I>(eventName?: T): void;
}
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
eventName |
V2NIMMessageListener |
是 | 事件名称:sendMessage :本端发送消息状态回调,本端发送消息或插入消息成功后,SDK 会返回该回调。receiveMessages :消息接收回调,返回消息列表,包括本端接收的消息及其他端同步的消息。receiveP2PMessageReadReceipts :单聊消息已读回调,返回已读回执列表。receiveTeamMessageReadReceipts :群组消息已读回调,返回已读回执列表。messageRevokeNotifications :消息撤回通知回调,返回消息撤回通知列表。messagePinNotification :PIN 消息状态变化通知回调,返回 PIN 消息状态变化通知。messageQuickCommentNotification :消息快捷评论通知回调,返回快捷评论通知。messageDeletedNotifications :消息被删除回调,返回被删除的消息列表,包括本端删除的消息及其他端(单聊、群组)删除的消息。clearHistoryNotifications :会话内历史消息清除回调,返回被清除的历史消息列表,包括本端清除的历史消息及其他端(单聊、群组)清除的历史消息。 |
fn |
function | 是 | 监听事件的回调函数。当事件触发时,会调用该函数进行处理。 |
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;
/**
* 继承自 EventEmitter3 的取消监听方法
*/
off<T extends keyof I>(eventName: T, fn: (...args: I[T]) => void): void;
/**
* 继承自 EventEmitter3 的移除事件方法
*/
removeAllListeners<T extends keyof I>(eventName?: T): void;
}
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
eventName |
V2NIMMessageListener |
是 | 事件名称:onSendMessage :本端发送消息状态回调,本端发送消息或插入消息成功后,SDK 会返回该回调。onReceiveMessages :消息接收回调,返回消息列表,包括本端接收的消息及其他端同步的消息。onReceiveP2PMessageReadReceipts :单聊消息已读回调,返回已读回执列表。onReceiveTeamMessageReadReceipts :群组消息已读回调,返回已读回执列表。onMessageRevokeNotifications :消息撤回通知回调,返回消息撤回通知列表。onMessagePinNotification :PIN 消息状态变化通知回调,返回 PIN 消息状态变化通知。onMessageQuickCommentNotification :消息快捷评论通知回调,返回快捷评论通知。onMessageDeletedNotifications :消息被删除回调,返回被删除的消息列表,包括本端删除的消息及其他端(单聊、群组)删除的消息。onClearHistoryNotifications :会话内历史消息清除回调,返回被清除的历史消息列表,包括本端清除的历史消息及其他端(单聊、群组)清除的历史消息。 |
fn |
function | 是 | 监听事件的回调函数。当事件触发时,会调用该函数进行处理。 |
示例代码
TypeScriptnim.V2NIMMessageService.on("onSendMessage", function (message: V2NIMMessage) {})
nim.V2NIMMessageService.on("onReceiveMessages", function (messages: V2NIMMessage[]) {})
nim.V2NIMMessageService.on("onReceiveP2PMessageReadReceipts", function (readReceipts: V2NIMP2PMessageReadReceipt[]) {})
nim.V2NIMMessageService.on("onReceiveTeamMessageReadReceipts", function (readReceipts: V2NIMTeamMessageReadReceipt[]) {})
nim.V2NIMMessageService.on("onMessageRevokeNotifications", function (revokeNotifications: V2NIMMessageRevokeNotification[]) {})
nim.V2NIMMessageService.on("onMessagePinNotification", function (pinNotification: V2NIMMessagePinNotification) {})
nim.V2NIMMessageService.on("onMessageQuickCommentNotification", function (quickCommentNotification: V2NIMMessageQuickCommentNotification) {})
nim.V2NIMMessageService.on("onMessageDeletedNotifications", function (messageDeletedNotifications: V2NIMMessageDeletedNotification[]) {})
nim.V2NIMMessageService.on("onClearHistoryNotifications", function (clearHistoryNotifications: V2NIMClearHistoryNotification[]) {})
TypeScriptv2.messageService.on("sendMessage", function (message: V2NIMMessage) {})
v2.messageService.on("receiveMessages", function (messages: V2NIMMessage[]) {})
v2.messageService.on("receiveP2PMessageReadReceipts", function (readReceipts: V2NIMP2PMessageReadReceipt[]) {})
v2.messageService.on("receiveTeamMessageReadReceipts", function (readReceipts: V2NIMTeamMessageReadReceipt[]) {})
v2.messageService.on("messageRevokeNotifications", function (revokeNotifications: V2NIMMessageRevokeNotification[]) {})
v2.messageService.on("messagePinNotification", function (pinNotification: V2NIMMessagePinNotification) {})
v2.messageService.on("messageQuickCommentNotification", function (quickCommentNotification: V2NIMMessageQuickCommentNotification) {})
v2.messageService.on("messageDeletedNotifications", function (messageDeletedNotifications: V2NIMMessageDeletedNotification[]) {})
v2.messageService.on("clearHistoryNotifications", function (clearHistoryNotifications: V2NIMClearHistoryNotification[]) {})
TypeScriptnim.messageService.on("onSendMessage", function (message: V2NIMMessage) {})
nim.messageService.on("onReceiveMessages", function (messages: V2NIMMessage[]) {})
nim.messageService.on("onReceiveP2PMessageReadReceipts", function (readReceipts: V2NIMP2PMessageReadReceipt[]) {})
nim.messageService.on("onReceiveTeamMessageReadReceipts", function (readReceipts: V2NIMTeamMessageReadReceipt[]) {})
nim.messageService.on("onMessageRevokeNotifications", function (revokeNotifications: V2NIMMessageRevokeNotification[]) {})
nim.messageService.on("onMessagePinNotification", function (pinNotification: V2NIMMessagePinNotification) {})
nim.messageService.on("onMessageQuickCommentNotification", function (quickCommentNotification: V2NIMMessageQuickCommentNotification) {})
nim.messageService.on("onMessageDeletedNotifications", function (messageDeletedNotifications: V2NIMMessageDeletedNotification[]) {})
nim.messageService.on("onClearHistoryNotifications", function (clearHistoryNotifications: V2NIMClearHistoryNotification[]) {})
返回参数
无。
off("EventName")
接口描述
取消注册消息相关监听。
该方法为同步。
参数说明
TypeScriptoff<T extends keyof I>(eventName: T, fn: (...args: I[T]) => void): void
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
eventName |
V2NIMMessageListener |
是 | 事件名称:onSendMessage :本端发送消息状态回调,本端发送消息或插入消息成功后,SDK 会返回该回调。onReceiveMessages :消息接收回调,返回消息列表,包括本端接收的消息及其他端同步的消息。onReceiveP2PMessageReadReceipts :单聊消息已读回调,返回已读回执列表。onReceiveTeamMessageReadReceipts :群组消息已读回调,返回已读回执列表。onMessageRevokeNotifications :消息撤回通知回调,返回消息撤回通知列表。onMessagePinNotification :PIN 消息状态变化通知回调,返回 PIN 消息状态变化通知。onMessageQuickCommentNotification :消息快捷评论通知回调,返回快捷评论通知。onMessageDeletedNotifications :消息被删除回调,返回被删除的消息列表,包括本端删除的消息及其他端(单聊、群组)删除的消息。onClearHistoryNotifications :会话内历史消息清除回调,返回被清除的历史消息列表,包括本端清除的历史消息及其他端(单聊、群组)清除的历史消息。 |
fn |
function | 是 | 监听事件的回调函数。当事件触发时,会调用该函数进行处理。 |
TypeScriptoff<T extends keyof I>(eventName: T, fn: (...args: I[T]) => void): void
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
eventName |
V2NIMMessageListener |
是 | 事件名称:sendMessage :本端发送消息状态回调,本端发送消息或插入消息成功后,SDK 会返回该回调。receiveMessages :消息接收回调,返回消息列表,包括本端接收的消息及其他端同步的消息。receiveP2PMessageReadReceipts :单聊消息已读回调,返回已读回执列表。receiveTeamMessageReadReceipts :群组消息已读回调,返回已读回执列表。messageRevokeNotifications :消息撤回通知回调,返回消息撤回通知列表。messagePinNotification :PIN 消息状态变化通知回调,返回 PIN 消息状态变化通知。messageQuickCommentNotification :消息快捷评论通知回调,返回快捷评论通知。messageDeletedNotifications :消息被删除回调,返回被删除的消息列表,包括本端删除的消息及其他端(单聊、群组)删除的消息。clearHistoryNotifications :会话内历史消息清除回调,返回被清除的历史消息列表,包括本端清除的历史消息及其他端(单聊、群组)清除的历史消息。 |
fn |
function | 是 | 监听事件的回调函数。当事件触发时,会调用该函数进行处理。 |
TypeScriptoff<T extends keyof I>(eventName: T, fn: (...args: I[T]) => void): void
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
eventName |
V2NIMMessageListener |
是 | 事件名称:onSendMessage :本端发送消息状态回调,本端发送消息或插入消息成功后,SDK 会返回该回调。onReceiveMessages :消息接收回调,返回消息列表,包括本端接收的消息及其他端同步的消息。onReceiveP2PMessageReadReceipts :单聊消息已读回调,返回已读回执列表。onReceiveTeamMessageReadReceipts :群组消息已读回调,返回已读回执列表。onMessageRevokeNotifications :消息撤回通知回调,返回消息撤回通知列表。onMessagePinNotification :PIN 消息状态变化通知回调,返回 PIN 消息状态变化通知。onMessageQuickCommentNotification :消息快捷评论通知回调,返回快捷评论通知。onMessageDeletedNotifications :消息被删除回调,返回被删除的消息列表,包括本端删除的消息及其他端(单聊、群组)删除的消息。onClearHistoryNotifications :会话内历史消息清除回调,返回被清除的历史消息列表,包括本端清除的历史消息及其他端(单聊、群组)清除的历史消息。 |
fn |
function | 是 | 监听事件的回调函数。当事件触发时,会调用该函数进行处理。 |
示例代码
TypeScriptnim.V2NIMMessageService.off("onSendMessage", function (message: V2NIMMessage) {})
nim.V2NIMMessageService.off("onReceiveMessages", function (messages: V2NIMMessage[]) {})
nim.V2NIMMessageService.off("onReceiveP2PMessageReadReceipts", function (readReceipts: V2NIMP2PMessageReadReceipt[]) {})
nim.V2NIMMessageService.off("onReceiveTeamMessageReadReceipts", function (readReceipts: V2NIMTeamMessageReadReceipt[]) {})
nim.V2NIMMessageService.off("onMessageRevokeNotifications", function (revokeNotifications: V2NIMMessageRevokeNotification[]) {})
nim.V2NIMMessageService.off("onMessagePinNotification", function (pinNotification: V2NIMMessagePinNotification) {})
nim.V2NIMMessageService.off("onMessageQuickCommentNotification", function (quickCommentNotification: V2NIMMessageQuickCommentNotification) {})
nim.V2NIMMessageService.off("onMessageDeletedNotifications", function (messageDeletedNotifications: V2NIMMessageDeletedNotification[]) {})
nim.V2NIMMessageService.off("onClearHistoryNotifications", function (clearHistoryNotifications: V2NIMClearHistoryNotification[]) {})
TypeScriptv2.messageService.off("sendMessage", function (message: V2NIMMessage) {})
v2.messageService.off("receiveMessages", function (messages: V2NIMMessage[]) {})
v2.messageService.off("receiveP2PMessageReadReceipts", function (readReceipts: V2NIMP2PMessageReadReceipt[]) {})
v2.messageService.off("receiveTeamMessageReadReceipts", function (readReceipts: V2NIMTeamMessageReadReceipt[]) {})
v2.messageService.off("messageRevokeNotifications", function (revokeNotifications: V2NIMMessageRevokeNotification[]) {})
v2.messageService.off("messagePinNotification", function (pinNotification: V2NIMMessagePinNotification) {})
v2.messageService.off("messageQuickCommentNotification", function (quickCommentNotification: V2NIMMessageQuickCommentNotification) {})
v2.messageService.off("messageDeletedNotifications", function (messageDeletedNotifications: V2NIMMessageDeletedNotification[]) {})
v2.messageService.off("clearHistoryNotifications", function (clearHistoryNotifications: V2NIMClearHistoryNotification[]) {})
TypeScriptnim.messageService.off("onSendMessage", function (message: V2NIMMessage) {})
nim.messageService.off("onReceiveMessages", function (messages: V2NIMMessage[]) {})
nim.messageService.off("onReceiveP2PMessageReadReceipts", function (readReceipts: V2NIMP2PMessageReadReceipt[]) {})
nim.messageService.off("onReceiveTeamMessageReadReceipts", function (readReceipts: V2NIMTeamMessageReadReceipt[]) {})
nim.messageService.off("onMessageRevokeNotifications", function (revokeNotifications: V2NIMMessageRevokeNotification[]) {})
nim.messageService.off("onMessagePinNotification", function (pinNotification: V2NIMMessagePinNotification) {})
nim.messageService.off("onMessageQuickCommentNotification", function (quickCommentNotification: V2NIMMessageQuickCommentNotification) {})
nim.messageService.off("onMessageDeletedNotifications", function (messageDeletedNotifications: V2NIMMessageDeletedNotification[]) {})
nim.messageService.off("onClearHistoryNotifications", function (clearHistoryNotifications: V2NIMClearHistoryNotification[]) {})
返回参数
无。
sendMessage
接口描述
发送一条消息。
本端发送消息成功后,其他登录客户端和消息接收方会收到消息接收回调 onReceiveMessages
。
- 发送消息前,请先调用
V2NIMMessageCreator
中的接口创建消息。 - 如因网络等问题导致消息发送失败,可再次调用该方法重发消息。
参数说明
Javavoid sendMessage(V2NIMMessage message,
String conversationId,
V2NIMSendMessageParams params,
V2NIMSuccessCallback<V2NIMSendMessageResult> success,
V2NIMFailureCallback failure,
V2NIMProgressCallback progress);
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
message |
V2NIMMessage |
是 | 消息对象,通过调用 V2NIMMessageCreator 中的接口创建。如果为空或不存在则返回 191004 参数错误。 |
conversationId |
String | 是 | 会话 ID,通过调用 V2NIMConversationIdUtil 的对应函数创建。V2NIMConversationType )| 聊天对象账号(accountId)或群组 ID。 |
params |
V2NIMSendMessageParams |
否 | 消息发送配置参数,包括发送、推送、抄送、反垃圾等配置。 |
success |
V2NIMSuccessCallback |
是 | 消息发送成功回调,返回 V2NIMSendMessageResult 。 |
failure |
V2NIMFailureCallback |
是 | 消息发送失败回调,返回 错误码。 |
progress |
V2NIMProgressCallback |
否 | 附件上传进度回调,用于图片、语音、视频、文件类型消息。 |
Objective-C- (void)sendMessage:(V2NIMMessage *)message
conversationId:(NSString *)conversationId
params:(nullable V2NIMSendMessageParams *)params
success:(nullable V2NIMSendMessageSuccess)success
failure:(nullable V2NIMFailureCallback)failure
progress:(nullable V2NIMProgressCallback)progress;
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
message |
V2NIMMessage |
是 | 消息对象,通过调用 V2NIMMessageCreator 中的接口创建。如果为空或不存在则返回 191004 参数错误。 |
conversationId |
NSString * | 是 | 会话 ID,通过调用 V2NIMConversationIdUtil 的对应函数创建。V2NIMConversationType )| 聊天对象账号(accountId)或群组 ID。 |
params |
V2NIMSendMessageParams |
否 | 消息发送配置参数,包括发送、推送、抄送、反垃圾等配置。 |
success |
V2NIMSendMessageSuccess |
是 | 消息发送成功回调,可自定义设置。 |
failure |
V2NIMFailureCallback |
是 | 消息发送失败回调,返回 错误码。 |
progress |
V2NIMProgressCallback |
否 | 附件上传进度回调,用于图片、语音、视频、文件类型消息。 |
C++virtual void sendMessage(V2NIMMessage message,
nstd::string conversationId,
V2NIMSendMessageParams params,
V2NIMSuccessCallback<V2NIMSendMessageResult> success,
V2NIMFailureCallback failure,
V2NIMProgressCallback progress) = 0;
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
message |
V2NIMMessage |
是 | 消息对象,通过调用 V2NIMMessageCreator 中的接口创建。如果为空或不存在则返回 191004 参数错误。 |
conversationId |
nstd::string | 是 | 会话 ID,通过调用 V2NIMConversationIdUtil 的对应函数创建。V2NIMConversationType )| 聊天对象账号(accountId)或群组 ID。 |
params |
V2NIMSendMessageParams |
否 | 消息发送配置参数,包括发送、推送、抄送、反垃圾等配置。 |
success |
V2NIMSuccessCallback |
是 | 消息发送成功回调,返回 V2NIMSendMessageResult 。 |
failure |
V2NIMFailureCallback |
是 | 消息发送失败回调,返回 错误码。 |
progress |
V2NIMProgressCallback |
否 | 附件上传进度回调,用于图片、语音、视频、文件类型消息。 |
TypeScriptsendMessage(
message: V2NIMMessage,
conversationId: string,
params?: V2NIMSendMessageParams,
progress?: (percentage: number) => void
): Promise<V2NIMSendMessageResult>
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
message |
V2NIMMessage |
是 | 消息对象,通过调用 V2NIMMessageCreator 中的接口创建。如果为空或不存在则返回 191004 参数错误。 |
conversationId |
string | 是 | 会话 ID,通过调用 V2NIMConversationIdUtil 的对应函数创建。V2NIMConversationType )| 聊天对象账号(accountId)或群组 ID。 |
params |
V2NIMSendMessageParams |
否 | 消息发送配置参数,包括发送、推送、抄送、反垃圾等配置。 |
progress |
number | 否 | 附件上传进度(百分比),用于图片、语音、视频、文件类型消息。 |
TypeScriptsendMessage(message, conversationId, params, progressCallback): Promise<V2NIMSendMessageResult>
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
message |
V2NIMMessage |
是 | 消息对象,通过调用 V2NIMMessageCreator 中的接口创建。如果为空或不存在则返回 191004 参数错误。 |
conversationId |
nstd::string | 是 | 会话 ID,通过调用 V2NIMConversationIdUtil 的对应函数创建。V2NIMConversationType )| 聊天对象账号(accountId)或群组 ID。 |
params |
V2NIMSendMessageParams |
否 | 消息发送配置参数,包括发送、推送、抄送、反垃圾等配置。 |
progressCallback |
V2NIMProgressCallback |
否 | 附件上传进度回调,用于图片、语音、视频、文件类型消息。 |
TypeScriptsendMessage(
message: V2NIMMessage,
conversationId: string,
params?: V2NIMSendMessageParams,
progress?: (percentage: number) => void
): Promise<V2NIMSendMessageResult>
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
message |
V2NIMMessage |
是 | 消息对象,通过调用 V2NIMMessageCreator 中的接口创建。如果为空或不存在则返回 191004 参数错误。 |
conversationId |
string | 是 | 会话 ID,通过调用 V2NIMConversationIdUtil 的对应函数创建。V2NIMConversationType )| 聊天对象账号(accountId)或群组 ID。 |
params |
V2NIMSendMessageParams |
否 | 消息发送配置参数,包括发送、推送、抄送、反垃圾等配置。 |
progress |
number | 否 | 附件上传进度(百分比),用于图片、语音、视频、文件类型消息。 |
示例代码
Java
V2NIMMessageService v2MessageService = NIMClient.getService(V2NIMMessageService.class);
V2NIMMessage v2Message = V2NIMMessageCreator.createTextMessage("xxx");
String conversationId = V2NIMConversationIdUtil.conversationId("xxx", V2NIMConversationType.V2NIM_CONVERSATION_TYPE_P2P);
V2NIMMessageAntispamConfig antispamConfig = V2NIMMessageAntispamConfig.V2NIMMessageAntispamConfigBuilder.builder()
// TODO: 根据实际情况配置
// .withAntispamBusinessId()
// .withAntispamCheating()
// .withAntispamCustomMessage()
// .withAntispamEnabled()
// .withAntispamExtension()
.build();
V2NIMMessageConfig messageConfig = V2NIMMessageConfig.V2NIMMessageConfigBuilder.builder()
// TODO: 根据实际情况配置
// .withLastMessageUpdateEnabled()
// .withHistoryEnabled()
// .withOfflineEnabled()
// .withOnlineSyncEnabled()
// .withReadReceiptEnabled()
// .withRoamingEnabled()
// .withUnreadEnabled()
.build();
V2NIMMessagePushConfig pushConfig = V2NIMMessagePushConfig.V2NIMMessagePushConfigBuilder.builder()
// TODO: 根据实际情况配置
// .withContent()
// .withForcePush()
// .withForcePushAccountIds()
// .withForcePushContent()
// .withPayload()
// .withPushEnabled()
// .withPushNickEnabled()
.build();
V2NIMMessageRobotConfig robotConfig = V2NIMMessageRobotConfig.V2NIMMessageRobotConfigBuilder.builder()
// TODO: 根据实际情况配置
// .withAccountId()
// .withCustomContent()
// .withFunction()
// .withTopic()
.build();
V2NIMMessageRouteConfig routeConfig = V2NIMMessageRouteConfig.V2NIMMessageRouteConfigBuilder.builder()
// TODO: 根据实际情况配置
// .withRouteEnabled()
// .withRouteEnvironment()
.build();
V2NIMMessageAIConfigParams aiConfig = new V2NIMMessageAIConfigParams("aiUserAccountId");
//设置设置请求大模型的内容
aiConfig.setContent(new V2NIMAIModelCallContent("msg", 0));
List<V2NIMAIModelCallMessage> messages = new ArrayList<>();
messages.add(new V2NIMAIModelCallMessage(V2NIMAIModelRoleType.V2NIM_AI_MODEL_ROLE_TYPE_USER,"msg", 0));
//设置上下文信息
aiConfig.setMessages(messages);
//设置提示词变量占位符替换,JSON 格式的字符串,用于填充 prompt 中的变量。如果 V2NIMAIUser 中的 modelConfig.prompt 定义了变量,则必填
aiConfig.setPromptVariables("{key:value}");
V2NIMAIModelConfigParams modelConfigParams = new V2NIMAIModelConfigParams();
modelConfigParams.setPrompt("prompt");
modelConfigParams.setMaxTokens(1000);
modelConfigParams.setTopP(1.0);
modelConfigParams.setTemperature(0.5);
//设置大模型配置参数,会覆盖默认配置
aiConfig.setModelConfigParams(modelConfigParams);
V2NIMSendMessageParams sendMessageParams = V2NIMSendMessageParams.V2NIMSendMessageParamsBuilder.builder()
.withAIConfig(aiConfig)
// TODO: 根据实际情况配置
// .withAntispamConfig(antispamConfig)
// .withClientAntispamEnabled()
// .withClientAntispamReplace()
// .withMessageConfig(messageConfig)
// .withPushConfig(pushConfig)
// .withRobotConfig(robotConfig)
// .withRouteConfig(routeConfig)
.build();
v2MessageService.sendMessage(v2Message, conversationId, sendMessageParams,
new V2NIMSuccessCallback<V2NIMSendMessageResult>() {
@Override
public void onSuccess(V2NIMSendMessageResult v2NIMSendMessageResult) {
// TODO: 发送成功
}
},
new V2NIMFailureCallback() {
@Override
public void onFailure(V2NIMError error) {
// TODO: 发送失败
}
},
new V2NIMProgressCallback() {
@Override
public void onProgress(int progress) {
// TODO: 发送进度
}
});
}
Objective-CV2NIMMessage *v2Message = [[V2NIMMessage alloc] init];
V2NIMSendMessageParams *sendParams = [[V2NIMSendMessageParams alloc] init];
[NIMSDK.sharedSDK.v2MessageService sendMessage:v2Message conversationId:@"conversationId" params:sendParams success:^(V2NIMSendMessageResult * _Nonnull result) {
// 成功回调
} failure:^(V2NIMError * _Nonnull error) {
// 失败回调
} progress:^(NSUInteger) {
// 进度
}];
}];
C++v2::V2NIMMessage message;
v2::V2NIMSendMessageParams sendMessageParams;
messageService.sendMessage(
message, conversationId, sendMessageParams,
[=](v2::V2NIMSendMessageResult result) {
// 成功回调 auto detailString = xpack::json::encode(result);
},
[=](v2::V2NIMError error) {
// upload progress
},
[=](uint32_t progress) {
// upload progress
}); 先使用 MessageCreator 模块下的接口创建消息\n2. 上传进度点开 detail [sendMessage::progress]"));
TypeScriptconst messageBeforeSend = nim.V2NIMMessageCreator.createTextMessage("hello world")
const conversationId = nim.V2NIMConversationIdUtil.p2pConversationId('ACCOUND_ID')
const paramsForAIConfig = {
"accountId": "YOUR_AI_ACCOUNT_ID",
"content": {
"msg": "YOUR_CONTENT_MSG",
"type": 0
}
}
const message = await nim.V2NIMMessageService.sendMessage(
messageBeforeSend,
conversationId,
{
"aiConfig": paramsForAIConfig,
"messageConfig": {},
"routeConfig": {},
"pushConfig": {},
"antispamConfig": {},
"robotConfig": {},
"clientAntispamEnabled": true,
"clientAntispamReplace": "******"
}
)
TypeScriptconst message = v2.messageCreator.createTextMessage('Hello NTES IM')
const result = await v2.messageService.sendMessage(message, conversationId, params, progressCallback)
TypeScripttry {
const message: V2NIMMessage = nim.messageCreator.createTextMessage("hello")
const res: V2NIMSendMessageResult = await nim.messageService.sendMessage(message, 'test1|1|test2')
// todo Success
} catch (err) {
// todo error
}
返回参数
无返回值。
Promise<V2NIMSendMessageResult
> 消息发送结果
相关回调
- 请求成功,返回
V2NIMSuccessCallback
回调,包含V2NIMSendMessageResult
。 - 请求失败,返回
V2NIMFailureCallback
回调,包含消息相关错误码。
- 请求成功,返回
V2NIMSendMessageSuccess
回调,可自定义设置。 - 请求失败,返回
V2NIMFailureCallback
回调,包含消息相关错误码。
无。
modifyMessage
接口描述
更新消息,对已发送成功的消息进行二次编辑,修改消息体中的部分字段。
本端更新消息成功后,会话参与者以及登录的其他客户端会收到消息更新回调 onReceiveMessagesModified
。
- 只有发送成功的消息才支持修改更新。
- 在单聊会话中,只有消息发送者才可以更新消息。在群聊会话中,只有消息发送者和群组可以更新消息。
- 更新时可以配置反垃圾,反垃圾配置可以和原消息不一致。
- 可更新字段包括
subType
、text
、attachment
、serverExtension
,消息类型不允许变更。
参数说明
Javavoid modifyMessage(V2NIMMessage message, V2NIMModifyMessageParams params, V2NIMSuccessCallback<V2NIMModifyMessageResult> success, V2NIMFailureCallback failure);
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
message |
V2NIMMessage |
是 | 需要更新的消息对象。如果为空或不存在则返回 191004 参数错误。 |
params |
V2NIMModifyMessageParams |
是 | 更新消息的配置参数,包括 subType 、text 、attachment 、serverExtension 字段、抄送配置以及反垃圾配置。 |
success |
V2NIMSuccessCallback |
是 | 更新发送成功回调,返回 V2NIMModifyMessageResult 。 |
failure |
V2NIMFailureCallback |
是 | 更新发送失败回调,返回 错误码。 |
Objective-C-(void)modifyMessage:(V2NIMMessage *)message
params:(V2NIMModifyMessageParams *)params
success:(nullable V2NIMModifyMessageSuccess)success
failure:(nullable V2NIMFailureCallback)failure;
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
message |
V2NIMMessage |
是 | 需要更新的消息对象。如果为空或不存在则返回 191004 参数错误。 |
params |
V2NIMModifyMessageParams |
是 | 更新消息的配置参数,包括 subType 、text 、attachment 、serverExtension 字段、抄送配置以及反垃圾配置。 |
success |
V2NIMModifyMessageSuccess |
是 | 更新发送成功回调,可自定义设置。 |
failure |
V2NIMFailureCallback |
是 | 更新失败回调,返回 错误码。 |
C++virtual void v2::V2NIMMessageService::modifyMessage(const V2NIMMessage & message,
const V2NIMModifyMessageParams & params,
const V2NIMSuccessCallback<const V2NIMModifyMessageResult &> & success,
const V2NIMFailureCallback & failure)
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
message |
V2NIMMessage |
是 | 需要更新的消息对象。如果为空或不存在则返回 191004 参数错误。 |
params |
V2NIMModifyMessageParams |
是 | 更新消息的配置参数,包括 subType 、text 、attachment 、serverExtension 字段、抄送配置以及反垃圾配置。 |
success |
V2NIMSuccessCallback |
是 | 更新发送成功回调,返回 V2NIMModifyMessageResult 。 |
failure |
V2NIMFailureCallback |
是 | 更新发送失败回调,返回 错误码。 |
TypeScriptmodifyMessage(message: V2NIMMessage, params: V2NIMModifyMessageParams): Promise<V2NIMModifyMessageResult>
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
message |
V2NIMMessage |
是 | 需要更新的消息对象。如果为空或不存在则返回 191004 参数错误。 |
params |
V2NIMModifyMessageParams |
是 | 更新消息的配置参数,包括 subType 、text 、attachment 、serverExtension 字段、抄送配置以及反垃圾配置。 |
TypeScriptmodifyMessage(message, params): Promise<V2NIMModifyMessageResult>
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
message |
V2NIMMessage |
是 | 需要更新的消息对象。如果为空或不存在则返回 191004 参数错误。 |
params |
V2NIMModifyMessageParams |
是 | 更新消息的配置参数,包括 subType 、text 、attachment 、serverExtension 字段、抄送配置以及反垃圾配置。 |
TypeScriptmodifyMessage(message: V2NIMMessage, params: V2NIMModifyMessageParams): Promise<V2NIMModifyMessageResult>
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
message |
V2NIMMessage |
是 | 需要更新的消息对象。如果为空或不存在则返回 191004 参数错误。 |
params |
V2NIMModifyMessageParams |
是 | 更新消息的配置参数,包括 subType 、text 、attachment 、serverExtension 字段、抄送配置以及反垃圾配置。 |
示例代码
JavaString newMessageText = "new message text";
int newSubType = 1;
String newServerExtension = "{\"key\":\"value\"}";
boolean clientAntispamEnabled = true;
String clientAntispamReplace = "replace text";
V2NIMMessageAntispamConfig antispamConfig = V2NIMMessageAntispamConfig.V2NIMMessageAntispamConfigBuilder.builder()
// TODO: 根据实际情况配置
// .withAntispamBusinessId()
// .withAntispamCheating()
// .withAntispamCustomMessage()
// .withAntispamEnabled()
// .withAntispamExtension()
.build();
V2NIMMessagePushConfig pushConfig = V2NIMMessagePushConfig.V2NIMMessagePushConfigBuilder.builder()
// TODO: 根据实际情况配置
// .withContent()
// .withForcePush()
// .withForcePushAccountIds()
// .withForcePushContent()
// .withPayload()
// .withPushEnabled()
// .withPushNickEnabled()
.build();
V2NIMMessageRouteConfig routeConfig = V2NIMMessageRouteConfig.V2NIMMessageRouteConfigBuilder.builder()
// TODO: 根据实际情况配置
// .withRouteEnabled()
// .withRouteEnvironment()
.build();
V2NIMModifyMessageParams modifyMessageParams = V2NIMModifyMessageParamsBuilder.builder()
.withText(newMessageText)
.withSubType(newSubType)
.withServerExtension(newServerExtension)
//仅支持地理位置消息附件和自定义消息附件的修改
.withAttachment(createLocationMessageAttachment())
.withAntispamConfig(antispamConfig)
.withRouteConfig(routeConfig)
.withPushConfig(pushConfig)
.withClientAntispamEnabled(clientAntispamEnabled)
.withClientAntispamReplace(clientAntispamReplace)
.build();
V2NIMMessageService v2MessageService = NIMClient.getService(V2NIMMessageService.class);
v2MessageService.modifyMessage(getMessage(), modifyMessageParams, new V2NIMSuccessCallback<V2NIMModifyMessageResult>() {
@Override
public void onSuccess(V2NIMModifyMessageResult v2NIMModifyMessageResult) {
if (v2NIMModifyMessageResult.getErrorCode() == 200) {
//修改成功
}else{
//修改失败,可能触发的反垃圾
}
}
}, new V2NIMFailureCallback() {
@Override
public void onFailure(V2NIMError error) {
//修改失败
}
});
Objective-CV2NIMModifyMessageParams *params = [[V2NIMModifyMessageParams alloc] init];
// 更新消息内容
params.text = @"modified text";
// 仅位置消息和自定义消息可以更新附件
params.attachment = modifiedAttachment;
// 更新消息的服务器扩展字段
params.serverExtension = @"{\"key\": \"value\"}";
[[NIMSDK sharedSDK].v2MessageService modifyMessage:message params:params success:^(V2NIMModifyMessageResult *result) {
// 更新消息成功
} failure:^(V2NIMError *error) {
// 更新消息失败
}];
C++auto params = V2NIMModifyMessageParams();
messageService.modifyMessage(
message,
params,
[](V2NIMModifyMessageResult result) {
// modify message succeeded
},
[](V2NIMError error) {
// modify message failed, handle error
});
TypeScriptlet message = nim.V2NIMMessageCreator.createTextMessage("origin text")
message = await nim.V2NIMMessageService.sendMessage(message, 'YOUR_CONVERSATION_ID')
await nim.V2NIMMessageService.modifyMessage(message, {
"text": "modified text"
})
TypeScriptconst result = await v2.messageService.modifyMessage(message, {
text: 'Hello NTES IM'
})
TypeScriptlet message = nim.messageCreator.createTextMessage("origin text")
const params: V2NIMModifyMessageParams = {
subType: this.subType,
text: this.text,
serverExtension: this.serverExtension
} as V2NIMModifyMessageParams
const result = await nim.messageService.modifyMessage(message, params)
返回参数
无返回值。
Promise<V2NIMModifyMessageResult
> 更新消息结果
相关回调
- 请求成功,返回
V2NIMSuccessCallback
回调,包含V2NIMModifyMessageResult
。 - 请求失败,返回
V2NIMFailureCallback
回调,包含消息相关错误码。
- 请求成功,返回 `` 回调,可自定义设置。
- 请求失败,返回
V2NIMFailureCallback
回调,包含消息相关错误码。
无。
revokeMessage
接口描述
撤回一条指定消息。
本地端或多端同步撤回消息成功后,SDK 会返回消息撤回通知回调 onMessageRevokeNotifications
,并同步缓存和数据库。
仅支持撤回已发送成功的消息,不支持撤回通知类型的消息。
参数说明
Javavoid revokeMessage(V2NIMMessage message, V2NIMMessageRevokeParams params, V2NIMSuccessCallback<Void> success, V2NIMFailureCallback failure);
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
message |
V2NIMMessage |
是 | 待撤回的消息对象,该消息发送状态必须为 V2NIMMessageSendingState.V2NIM_MESSAGE_SENDING_STATE_SUCCEEDED(1) 。如果为空或不存在则返回 191004 参数错误。 |
params |
V2NIMMessageRevokeParams |
否 | 消息撤回配置参数 |
success |
V2NIMSuccessCallback |
是 | 消息撤回成功回调 |
failure |
V2NIMFailureCallback |
是 | 消息撤回失败回调,返回 错误码。 |
Objective-C- (void)revokeMessage:(V2NIMMessage *)message
revokeParams:(V2NIMMessageRevokeParams *)revokeParams
success:(nullable V2NIMSuccessCallback)success
failure:(nullable V2NIMFailureCallback)failure;
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
message |
V2NIMMessage |
是 | 待撤回的消息对象,该消息发送状态必须为 V2NIMMessageSendingState.V2NIM_MESSAGE_SENDING_STATE_SUCCEEDED(1) 。如果为空或不存在则返回 191004 参数错误。 |
params |
V2NIMMessageRevokeParams |
否 | 消息撤回配置参数 |
success |
V2NIMSuccessCallback |
是 | 消息撤回成功回调 |
failure |
V2NIMFailureCallback |
是 | 消息撤回失败回调,返回 错误码。 |
C++virtual void revokeMessage(V2NIMMessage message,
V2NIMMessageRevokeParams params,
V2NIMSuccessCallback<void> success,
V2NIMFailureCallback failure) = 0;
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
message |
V2NIMMessage |
是 | 待撤回的消息对象,该消息发送状态必须为 V2NIMMessageSendingState.V2NIM_MESSAGE_SENDING_STATE_SUCCEEDED(1) 。如果为空或不存在则返回 191004 参数错误。 |
params |
V2NIMMessageRevokeParams |
否 | 消息撤回配置参数 |
success |
V2NIMSuccessCallback |
是 | 消息撤回成功回调 |
failure |
V2NIMFailureCallback |
是 | 消息撤回失败回调,返回 错误码。 |
TypeScriptrevokeMessage(message: V2NIMMessage, params?: V2NIMMessageRevokeParams): Promise<void>
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
message |
V2NIMMessage |
是 | 待撤回的消息对象,该消息发送状态必须为 V2NIMMessageSendingState.V2NIM_MESSAGE_SENDING_STATE_SUCCEEDED(1) 。如果为空或不存在则返回 191004 参数错误。 |
params |
V2NIMMessageRevokeParams |
否 | 消息撤回配置参数 |
TypeScriptrevokeMessage(message, params): Promise<void>
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
message |
V2NIMMessage |
是 | 待撤回的消息对象,该消息发送状态必须为 V2NIMMessageSendingState.V2NIM_MESSAGE_SENDING_STATE_SUCCEEDED(1) 。如果为空或不存在则返回 191004 参数错误。 |
params |
V2NIMMessageRevokeParams |
否 | 消息撤回配置参数 |
TypeScriptrevokeMessage(message: V2NIMMessage, params?: V2NIMMessageRevokeParams): Promise<void>
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
message |
V2NIMMessage |
是 | 待撤回的消息对象,该消息发送状态必须为 V2NIMMessageSendingState.V2NIM_MESSAGE_SENDING_STATE_SUCCEEDED(1) 。如果为空或不存在则返回 191004 参数错误。 |
params |
V2NIMMessageRevokeParams |
否 | 消息撤回配置参数 |
示例代码
JavaV2NIMMessageService v2MessageService = NIMClient.getService(V2NIMMessageService.class);
// V2NIMMessage revokeMessage = ; // 被撤回的消息
// 根据实际情况配置
V2NIMMessageRevokeParams revokeParams = V2NIMMessageRevokeParams.V2NIMMessageRevokeParamsBuilder.builder()
.withEnv()
.withExtension()
.withPostscript()
.withPushContent()
.withPushPayload()
.build();
v2MessageService.revokeMessage(revokeMessage, revokeParams,
new V2NIMSuccessCallback<Void>() {
@Override
public void onSuccess(Void unused) {
// TODO: 撤回成功
}
},
new V2NIMFailureCallback() {
@Override
public void onFailure(V2NIMError error) {
// TODO: 撤回失败
}
});
Objective-CV2NIMMessageRevokeParams *revokeParams = [[V2NIMMessageRevokeParams alloc] init];
[[[NIMSDK sharedSDK] v2MessageService] revokeMessage:message
revokeParams:revokeParams
success:^{
// 发送成功回调
}
failure:^(V2NIMError * _Nonnull error) {
// 发送失败回调,error 包含错误原因
}];
C++V2NIMMessage message;
// ...
V2NIMMessageRevokeParams params;
messageService.revokeMessage(
message,
params,
[]() {
// revoke message succeeded
},
[](V2NIMError error) {
// revoke message failed, handle error
}
);
TypeScripttry {
await nim.V2NIMMessageService.revokeMessage(message)
// todo Success
} catch (err) {
// todo error
}
TypeScripttry {
await v2.messageService.revokeMessage(message, {})
// todo Success
} catch (err) {
// todo error
}
TypeScripttry {
await nim.messageService.revokeMessage(message)
// todo Success
} catch (err) {
// todo error
}
返回参数
无返回值。
Promise<void>
相关回调
- 请求成功,返回
V2NIMSuccessCallback
回调。消息撤回成功,返回onMessageRevokeNotifications
回调。 - 请求失败,返回
V2NIMFailureCallback
回调,包含消息相关错误码。
消息撤回成功,返回 onMessageRevokeNotifications
回调。
消息撤回成功,返回 messageRevokeNotifications
回调。
getMessageList
接口描述
按消息查询配置项分页获取所有历史消息。
该方法用于分页获取会话内消息数据,直到获取会话内全量消息,获取到的消息不包括已删除消息。
如果会话数据同步已开始(收到 V2NIMConversationListener.onSyncStarted
回调),建议您在数据同步完成(收到 V2NIMConversationListener.onSyncFinished
回调)后再进行该操作,否则可能查询不到完整消息数据。
参数说明
Javavoid getMessageList(V2NIMMessageListOption option, V2NIMSuccessCallback<List<V2NIMMessage>> success, V2NIMFailureCallback failure);
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
option |
V2NIMMessageListOption |
是 | 消息查询配置项,支持查询指定时间段和消息类型的历史消息。 |
success |
V2NIMSuccessCallback |
是 | 查询成功回调,返回 V2NIMMessage 列表。 |
failure |
V2NIMFailureCallback |
是 | 查询失败回调,返回 错误码。 |
Objective-C- (void)getMessageList:(V2NIMMessageListOption *)option
success:(nullable V2NIMGetMessageListSuccess)success
failure:(nullable V2NIMFailureCallback)failure;
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
option |
V2NIMMessageListOption |
是 | 消息查询配置项 |
success |
V2NIMSuccessCallback |
是 | 查询成功回调,返回 V2NIMMessage 列表。 |
failure |
V2NIMFailureCallback |
是 | 查询失败回调,返回 错误码。 |
C++virtual void getMessageList(V2NIMMessageListOption option,
V2NIMSuccessCallback<nstd::vector<V2NIMMessage>> success,
V2NIMFailureCallback failure) = 0;
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
option |
V2NIMMessageListOption |
是 | 消息查询配置项 |
success |
V2NIMSuccessCallback |
是 | 查询成功回调,返回 V2NIMMessage 列表。 |
failure |
V2NIMFailureCallback |
是 | 查询失败回调,返回 错误码。 |
TypeScriptgetMessageList(option: V2NIMMessageListOption): Promise<V2NIMMessage[]>
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
option |
V2NIMMessageListOption |
是 | 消息查询配置项 |
TypeScriptgetMessageList(option): Promise<V2NIMMessage[]>
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
option |
V2NIMMessageListOption |
是 | 消息查询配置项 |
TypeScriptgetMessageList(option: V2NIMMessageListOption): Promise<V2NIMMessage[]>
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
option |
V2NIMMessageListOption |
是 | 消息查询配置项 |
示例代码
JavaV2NIMMessageService v2MessageService = NIMClient.getService(V2NIMMessageService.class);
V2NIMConversationType conversationType = V2NIMConversationType.V2NIM_CONVERSATION_TYPE_P2P;
String conversationId = V2NIMConversationIdUtil.conversationId("xxx", conversationType);
V2NIMMessageListOption listOption = V2NIMMessageListOption.V2NIMMessageListOptionBuilder.builder(conversationId)
// TODO: 根据实际情况配置
// .withAnchorMessage()
// .withBeginTime()
// .withDirection()
// .withEndTime()
// .withLimit()
// .withMessageTypes()
// .withStrictMode()
.build();
v2MessageService.getMessageList(listOption,
new V2NIMSuccessCallback<List<V2NIMMessage>>() {
@Override
public void onSuccess(List<V2NIMMessage> v2NIMMessages) {
// TODO: 成功
}
},
new V2NIMFailureCallback() {
@Override
public void onFailure(V2NIMError error) {
// TODO: 失败
}
});
Objective-CV2NIMMessageListOption *option = [[V2NIMMessageListOption alloc] init];
[[[NIMSDK sharedSDK] v2MessageService] getMessageList:option
success:^(NSArray<V2NIMMessage *> * _Nonnull result) {
//result 返回消息数组
}
failure:^(V2NIMError * _Nonnull error) {
//error 包含错误原因
}];
C++V2NIMMessageListOption option;
option.limit = 10;
messageService.getMessageList(
option,
[](nstd::vector<V2NIMMessage> messages) {
for (auto&& message : messages) {
// do something
}
},
[](V2NIMError error) {
// get message list failed, handle error
});
TypeScripttry {
const res: V2NIMMessage[] = await nim.V2NIMMessageService.getMessageList({
"conversationId": "cjhz1|1|cs6",
"limit": 50,
"anchorMessage": {
"messageServerId": "111",
"createTime": 0
},
"direction": 0
})
// todo Success
} catch (err) {
// todo error
}
TypeScripttry {
const messages = await v2.messageService.getMessageList({
conversationId: 'conversationId'
})
// todo Success
} catch (err) {
// todo error
}
TypeScripttry {
const res: V2NIMMessage[] = await nim.messageService.getMessageList({
"conversationId": "cjhz1|1|cs6",
"limit": 50,
"anchorMessage": {
"messageServerId": "111",
"createTime": 0
},
"direction": 0
})
// todo Success
} catch (err) {
// todo error
}
返回参数
无返回值。
Promise<V2NIMMessage
[]> 消息列表
相关回调
- 请求成功,返回
V2NIMSuccessCallback
回调,包含V2NIMMessage
列表。 - 请求失败,返回
V2NIMFailureCallback
回调,包含消息相关错误码。
- 请求成功,返回
V2NIMConversationResultCallback
回调,可自定义设置。 - 请求失败,返回
V2NIMFailureCallback
回调,包含消息相关错误码。
无。
getMessageListByIds
接口描述
批量查询指定消息列表。
该方法从 本地数据库 按照客户端消息 ID 批量获取消息数据。
Web 端不支持该接口。
参数说明
Javavoid getMessageListByIds(List<String> messageClientIds, V2NIMSuccessCallback<List<V2NIMMessage>> success, V2NIMFailureCallback failure);
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
messageClientIds |
List<String> | 是 | 客户端消息 ID,具有唯一性。不能为空,否则返回 191004 参数错误。 |
success |
V2NIMSuccessCallback |
是 | 查询成功回调,返回 V2NIMMessage 列表。 |
failure |
V2NIMFailureCallback |
是 | 查询失败回调,返回 错误码。 |
Objective-C- (void)getMessageListByIds:(NSArray<NSString *> *)messageClientIds
success:(nullable V2NIMGetMessageListSuccess)success
failure:(nullable V2NIMFailureCallback)failure;
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
messageClientIds |
NSArray<NSString *> * | 是 | 客户端消息 ID,具有唯一性。不能为空,否则返回 191004 参数错误。 |
success |
V2NIMSuccessCallback |
是 | 查询成功回调,返回 V2NIMMessage 列表。 |
failure |
V2NIMFailureCallback |
是 | 查询失败回调,返回 错误码。 |
C++virtual void getMessageListByIds(nstd::vector<nstd::string> messageClientIds,
V2NIMSuccessCallback<nstd::vector<V2NIMMessage>> success,
V2NIMFailureCallback failure) = 0;
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
messageClientIds |
nstd::vectornstd::string | 是 | 客户端消息 ID,具有唯一性。不能为空,否则返回 191004 参数错误。 |
success |
V2NIMSuccessCallback |
是 | 查询成功回调,返回 V2NIMMessage 列表。 |
failure |
V2NIMFailureCallback |
是 | 查询失败回调,返回 错误码。 |
TypeScriptgetMessageListByIds(messageClientIds: string[]): Promise<V2NIMMessage[]>
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
messageClientIds |
string[] | 是 | 客户端消息 ID,具有唯一性。不能为空,否则返回 191004 参数错误。 |
示例代码
JavaV2NIMMessageService v2MessageService = NIMClient.getService(V2NIMMessageService.class);
List<String> messageClientIds = new ArrayList<>();
// TODO
// messageClientIds.add("xxx");
v2MessageService.getMessageListByIds(messageClientIds,
new V2NIMSuccessCallback<List<V2NIMMessage>>() {
@Override
public void onSuccess(List<V2NIMMessage> v2NIMMessages) {
}
},
new V2NIMFailureCallback() {
@Override
public void onFailure(V2NIMError error) {
}
});
Objective-CNSArray *messageClientIds = @[@"messageClientId1",@"messageClientId2",@"messageClientIdn"];
[[[NIMSDK sharedSDK] v2MessageService] getMessageListByIds:messageClientIds
success:^(NSArray<V2NIMMessage *> * _Nonnull result) {
//result 返回消息数组
}
failure:^(V2NIMError * _Nonnull error) {
//error 包含错误原因
}];
C++nstd::vector<nstd::string> messageClientIds;
// ...
messageService.getMessageListByIds(
messageClientIds,
[](nstd::vector<V2NIMMessage> messages) {
for (auto&& message : messages) {
// do something
}
},
[](V2NIMError error) {
// get message list by ids failed, handle error
});
TypeScriptconst messageIds: string[] //消息 ID 数组
const result = await nim.messageService.getMessageListByIds(messageIds)
返回参数
无返回值。
Promise<V2NIMMessage
[]> 消息列表
相关回调
- 请求成功,返回
V2NIMSuccessCallback
回调,包含V2NIMMessage
列表。 - 请求失败,返回
V2NIMFailureCallback
回调,包含消息相关错误码。
- 请求成功,返回
V2NIMConversationListCallback
回调,可自定义设置。 - 请求失败,返回
V2NIMFailureCallback
回调,包含消息相关错误码。
无。
deleteMessage
接口描述
删除单条消息。
本地端或多端同步删除消息成功后,SDK 会返回消息删除通知回调 onMessageDeletedNotifications
,并同步数据库和缓存。
- 仅单聊和高级群支持消息删除多端同步。
- 如果会话数据同步已开始(收到
V2NIMConversationListener.onSyncStarted
回调),建议您在数据同步完成(收到V2NIMConversationListener.onSyncFinished
回调)后再进行该操作。
参数说明
Javavoid deleteMessage(V2NIMMessage message, String serverExtension, boolean onlyDeleteLocal, V2NIMSuccessCallback<Void> success, V2NIMFailureCallback failure);
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
message |
V2NIMMessage |
是 | 删除的消息对象。如果为空或不存在则返回 191004 参数错误。 |
serverExtension |
String | 否 | 消息服务端扩展字段。必须为 JSON 格式封装,长度上限为 1024 字节,多端同步。 |
onlyDeleteLocal |
Boolean | 否 | 是否仅删除本地消息:getMessageList 时 SDK 不会返回已删除的消息。 |
success |
V2NIMSuccessCallback |
是 | 删除消息成功回调 |
failure |
V2NIMFailureCallback |
是 | 删除消息失败回调,返回 错误码。 |
Objective-C- (void)deleteMessage:(V2NIMMessage *)message
serverExtension:(NSString *)serverExtension
onlyDeleteLocal:(BOOL)onlyDeleteLocal
success:(nullable V2NIMSuccessCallback)success
failure:(nullable V2NIMFailureCallback)failure;
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
message |
V2NIMMessage |
是 | 删除的消息对象。如果为空或不存在则返回 191004 参数错误。 |
serverExtension |
NSString * | 否 | 消息服务端扩展字段。必须为 JSON 格式封装,长度上限为 1024 字节,多端同步。 |
onlyDeleteLocal |
BOOL | 否 | 是否仅删除本地消息:getMessageList 时 SDK 不会返回已删除的消息。 |
success |
V2NIMSuccessCallback |
是 | 删除消息成功回调 |
failure |
V2NIMFailureCallback |
是 | 删除消息失败回调,返回 错误码。 |
C++virtual void deleteMessage(V2NIMMessage message,
nstd::optional<nstd::string> serverExtension,
bool onlyDeleteLocal,
V2NIMSuccessCallback<void> success,
V2NIMFailureCallback failure) = 0;
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
message |
V2NIMMessage |
是 | 删除的消息对象。如果为空或不存在则返回 191004 参数错误。 |
serverExtension |
nstd::optionalnstd::string | 否 | 消息服务端扩展字段。必须为 JSON 格式封装,长度上限为 1024 字节,多端同步。 |
onlyDeleteLocal |
bool | 否 | 是否仅删除本地消息:getMessageList 时 SDK 不会返回已删除的消息。 |
success |
V2NIMSuccessCallback |
是 | 删除消息成功回调 |
failure |
V2NIMFailureCallback |
是 | 删除消息失败回调,返回 错误码。 |
TypeScriptdeleteMessage(message: V2NIMMessage, serverExtension?: string): Promise<void>
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
message |
V2NIMMessage |
是 | 删除的消息对象。如果为空或不存在则返回 191004 参数错误。 |
serverExtension |
string | 否 | 消息服务端扩展字段。必须为 JSON 格式封装,长度上限为 1024 字节,多端同步。 |
TypeScriptdeleteMessage(message, serverExtension, onlyDeleteLocal): Promise<void>
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
message |
V2NIMMessage |
是 | 删除的消息对象。如果为空或不存在则返回 191004 参数错误。 |
serverExtension |
string | 否 | 消息服务端扩展字段。必须为 JSON 格式封装,长度上限为 1024 字节,多端同步。 |
onlyDeleteLocal |
bool | 否 | 是否仅删除本地消息:getMessageList 时 SDK 不会返回已删除的消息。 |
TypeScriptdeleteMessage(message: V2NIMMessage, serverExtension?: string): Promise<void>
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
message |
V2NIMMessage |
是 | 删除的消息对象。如果为空或不存在则返回 191004 参数错误。 |
serverExtension |
string | 否 | 消息服务端扩展字段。必须为 JSON 格式封装,长度上限为 1024 字节,多端同步。 |
示例代码
JavaV2NIMMessageService v2MessageService = NIMClient.getService(V2NIMMessageService.class);
// V2NIMMessage deleteMessage = ; // 被删除的消息
v2MessageService.deleteMessage(deleteMessage, "xxx", false,
new V2NIMSuccessCallback<Void>() {
@Override
public void onSuccess(Void unused) {
}
},
new V2NIMFailureCallback() {
@Override
public void onFailure(V2NIMError error) {
}
});
Objective-C[[[NIMSDK sharedSDK] v2MessageService] deleteMessage:message
serverExtension:@"json String"
onlyDeleteLocal:YES
success:^{
}
failure:^(V2NIMError * _Nonnull error) {
//error 包含错误原因
}];
C++V2NIMMessage message;
// ...
messageService.deleteMessage(
message,
"serverExtension",
false,
[]() {
// delete message succeeded
},
[](V2NIMError error) {
// delete message failed, handle error
});
TypeScripttry {
await nim.V2NIMMessageService.deleteMessage(message, 'serverExtension')
// todo Success
} catch (err) {
// todo error
}
TypeScripttry {
await v2.messageService.deleteMessage(message, 'serverExtension', true)
// todo Success
} catch (err) {
// todo error
}
TypeScripttry {
await nim.messageService.deleteMessage(message, 'serverExtension')
// todo Success
} catch (err) {
// todo error
}
返回参数
无返回值。
Promise<void>
相关回调
- 请求成功,返回
V2NIMSuccessCallback
回调。删除成功,返回onMessageDeletedNotifications
回调。 - 请求失败,返回
V2NIMFailureCallback
回调,包含消息相关错误码。
删除成功,返回 onMessageDeletedNotifications
回调。
删除成功,返回 messageDeletedNotifications
回调。
deleteMessages
接口描述
批量删除会话内消息。
本地端或多端同步的删除每一条消息成功后,SDK 均会返回消息删除通知回调 onMessageDeletedNotifications
,并同步数据库和缓存。
如果会话数据同步已开始(收到 V2NIMConversationListener.onSyncStarted
回调),建议您在数据同步完成(收到 V2NIMConversationListener.onSyncFinished
回调)后再进行该操作。
参数说明
Javavoid deleteMessages(List<V2NIMMessage> messages, String serverExtension, boolean onlyDeleteLocal, V2NIMSuccessCallback<Void> success, V2NIMFailureCallback failure);
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
messages |
List<V2NIMMessage > |
是 | 删除的消息列表。 |
serverExtension |
String | 否 | 消息服务端扩展字段。必须为 JSON 格式封装,长度上限为 1024 字节,多端同步。 |
onlyDeleteLocal |
Boolean | 否 | 是否仅删除本地消息:getMessageList 时 SDK 不会返回已删除的消息。 |
success |
V2NIMSuccessCallback |
是 | 删除消息成功回调 |
failure |
V2NIMFailureCallback |
是 | 删除消息失败回调,返回 错误码。 |
Objective-C- (void)deleteMessages:(NSArray<V2NIMMessage *> *)messages
serverExtension:(NSString *)serverExtension
onlyDeleteLocal:(BOOL)onlyDeleteLocal
success:(nullable V2NIMSuccessCallback)success
failure:(nullable V2NIMFailureCallback)failure;
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
messages |
NSArray<V2NIMMessage *> * |
是 | 删除的消息列表。 |
serverExtension |
NSString * | 否 | 消息服务端扩展字段。必须为 JSON 格式封装,长度上限为 1024 字节,多端同步。 |
onlyDeleteLocal |
BOOL | 否 | 是否仅删除本地消息:getMessageList 时 SDK 不会返回已删除的消息。 |
success |
V2NIMSuccessCallback |
是 | 删除消息成功回调 |
failure |
V2NIMFailureCallback |
是 | 删除消息失败回调,返回 错误码。 |
C++virtual void deleteMessages(nstd::vector<V2NIMMessage> messages,
nstd::optional<nstd::string> serverExtension,
bool onlyDeleteLocal,
V2NIMSuccessCallback<void> success,
V2NIMFailureCallback failure) = 0;
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
messages |
nstd::vector<V2NIMMessage > |
是 | 删除的消息列表。 |
serverExtension |
nstd::optionalnstd::string | 否 | 消息服务端扩展字段。必须为 JSON 格式封装,长度上限为 1024 字节,多端同步。 |
onlyDeleteLocal |
bool | 否 | 是否仅删除本地消息:getMessageList 时 SDK 不会返回已删除的消息。 |
success |
V2NIMSuccessCallback |
是 | 删除消息成功回调 |
failure |
V2NIMFailureCallback |
是 | 删除消息失败回调,返回 错误码。 |
TypeScriptdeleteMessages(messages: V2NIMMessage[], serverExtension?: string): Promise<void>
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
messages |
V2NIMMessage[] | 是 | 删除的消息列表。 |
serverExtension |
string | 否 | 消息服务端扩展字段。必须为 JSON 格式封装,长度上限为 1024 字节,多端同步。 |
TypeScriptdeleteMessages(messages, serverExtension, onlyDeleteLocal): Promise<void>
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
messages |
V2NIMMessage[] | 是 | 删除的消息列表。 |
serverExtension |
string | 否 | 消息服务端扩展字段。必须为 JSON 格式封装,长度上限为 1024 字节,多端同步。 |
onlyDeleteLocal |
bool | 否 | 是否仅删除本地消息:getMessageList 时 SDK 不会返回已删除的消息。 |
TypeScriptdeleteMessages(messages: V2NIMMessage[], serverExtension?: string): Promise<void>
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
messages |
V2NIMMessage[] | 是 | 删除的消息列表。 |
serverExtension |
string | 否 | 消息服务端扩展字段。必须为 JSON 格式封装,长度上限为 1024 字节,多端同步。 |
示例代码
JavaV2NIMMessageService v2MessageService = NIMClient.getService(V2NIMMessageService.class);
// List<V2NIMMessage> messages = ; // 被删除的消息
v2MessageService.deleteMessages(messages, "xxx", false,
new V2NIMSuccessCallback<Void>() {
@Override
public void onSuccess(Void unused) {
}
},
new V2NIMFailureCallback() {
@Override
public void onFailure(V2NIMError error) {
}
});
Objective-C[[[NIMSDK sharedSDK] v2MessageService] deleteMessages:@[message]
serverExtension:@"json String"
onlyDeleteLocal:YES
success:^{
}
failure:^(V2NIMError * _Nonnull error) {
//error 包含错误原因
}];
C++nstd::vector<V2NIMMessage> messages
// ...
messageService.deleteMessages(
messages,
"serverExtension",
false,
[]() {
// delete messages succeeded
},
[](V2NIMError error) {
// delete messages failed, handle error
});
TypeScripttry {
await nim.V2NIMMessageService.deleteMessages(messages, 'serverExtension')
// todo Success
} catch (err) {
// todo error
}
TypeScripttry {
await v2.messageService.deleteMessages(messages, 'serverExtension', true)
// todo Success
} catch (err) {
// todo error
}
TypeScripttry {
await nim.messageService.deleteMessages(messages, 'serverExtension')
// todo Success
} catch (err) {
// todo error
}
返回参数
无返回值。
Promise<void>
相关回调
- 请求成功,返回
V2NIMSuccessCallback
回调。每一条消息删除成功,返回onMessageDeletedNotifications
回调。 - 请求失败,返回
V2NIMFailureCallback
回调,包含消息相关错误码。
每一条消息删除成功,返回 onMessageDeletedNotifications
回调。
每一条消息删除成功,返回 messageDeletedNotifications
回调。
clearHistoryMessage
接口描述
清空会话内历史消息。
该方法同时删除本地和云端历史消息,不删除会话。
本地端或多端同步清空会话内历史消息成功后,SDK 会返回会话历史消息清空通知回调 onClearHistoryNotifications
,并同步数据库和缓存。
如果会话数据同步已开始(收到 V2NIMConversationListener.onSyncStarted
回调),建议您在数据同步完成(收到 V2NIMConversationListener.onSyncFinished
回调)后再进行该操作。
参数说明
Javavoid clearHistoryMessage(V2NIMClearHistoryMessageOption option, V2NIMSuccessCallback<Void> success, V2NIMFailureCallback failure);
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
option |
V2NIMClearHistoryMessageOption |
是 | 历史消息清空选项,可指定是否同步删除漫游消息、是否多端同步等参数。不能为空,否则返回 191004 参数错误。 |
success |
V2NIMSuccessCallback |
是 | 清空历史消息成功回调 |
failure |
V2NIMFailureCallback |
是 | 清空历史消息失败回调,返回 错误码。 |
Objective-C- (void)clearHistoryMessage:(V2NIMClearHistoryMessageOption *)option
success:(nullable V2NIMSuccessCallback)success
failure:(nullable V2NIMFailureCallback)failure;
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
option |
V2NIMClearHistoryMessageOption |
是 | 历史消息清空选项,可指定是否同步删除漫游消息、是否多端同步等参数。不能为空,否则返回 191004 参数错误。 |
success |
V2NIMSuccessCallback |
是 | 清空历史消息成功回调 |
failure |
V2NIMFailureCallback |
是 | 清空历史消息失败回调,返回 错误码。 |
C++virtual void clearHistoryMessage(V2NIMClearHistoryMessageOption option, V2NIMSuccessCallback<void> success, V2NIMFailureCallback failure) = 0;
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
option |
V2NIMClearHistoryMessageOption |
是 | 历史消息清空选项,可指定是否同步删除漫游消息、是否多端同步等参数。不能为空,否则返回 191004 参数错误。 |
success |
V2NIMSuccessCallback |
是 | 清空历史消息成功回调 |
failure |
V2NIMFailureCallback |
是 | 清空历史消息失败回调,返回 错误码。 |
TypeScriptclearHistoryMessage(option: V2NIMClearHistoryMessageOption): Promise<void>
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
option |
V2NIMClearHistoryMessageOption |
是 | 历史消息清空选项,可指定是否同步删除漫游消息、是否多端同步等参数。不能为空,否则返回 191004 参数错误。 |
TypeScriptclearHistoryMessage(option): Promise<void>
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
option |
V2NIMClearHistoryMessageOption |
是 | 历史消息清空选项,可指定是否同步删除漫游消息、是否多端同步等参数。不能为空,否则返回 191004 参数错误。 |
TypeScriptclearHistoryMessage(option: V2NIMClearHistoryMessageOption): Promise<void>
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
option |
V2NIMClearHistoryMessageOption |
是 | 历史消息清空选项,可指定是否同步删除漫游消息、是否多端同步等参数。不能为空,否则返回 191004 参数错误。 |
示例代码
JavaV2NIMMessageService v2MessageService = NIMClient.getService(V2NIMMessageService.class);
V2NIMConversationType conversationType = V2NIMConversationType.V2NIM_CONVERSATION_TYPE_P2P;
String conversationId = V2NIMConversationIdUtil.conversationId("xxx", conversationType);
V2NIMClearHistoryMessageOption clearOption = V2NIMClearHistoryMessageOption.V2NIMClearHistoryMessageOptionBuilder.builder(conversationId)
// TODO: 根据实际情况配置
// .withDeleteRoam()
// .withExtension()
// .withOnlineSync()
.build();
v2MessageService.clearHistoryMessage(clearOption,
new V2NIMSuccessCallback<Void>() {
@Override
public void onSuccess(Void unused) {
}
},
new V2NIMFailureCallback() {
@Override
public void onFailure(V2NIMError error) {
}
});
Objective-CV2NIMClearHistoryMessageOption *clearOption = [[V2NIMClearHistoryMessageOption alloc] init];
[[[NIMSDK sharedSDK] v2MessageService] clearHistoryMessage:clearOption
success:^{
} failure:^(V2NIMError * _Nonnull error) {
//error 包含错误原因
}];
C++V2NIMClearHistoryMessageOption option;
option.conversationId = V2NIMConversationIdUtil::p2pConversationId("target_account_id");
messageService.clearHistoryMessage(
option,
[]() {
// clear history message succeeded
},
[](V2NIMError error) {
// clear history message failed, handle error
});
TypeScripttry {
await nim.V2NIMMessageService.clearHistoryMessage({conversationId: 'me|1|another'})
// todo Success
} catch (err) {
// todo error
}
TypeScripttry {
await v2.messageService.clearHistoryMessage(option)
// todo Success
} catch (err) {
// todo error
}
TypeScripttry {
await nim.messageService.clearHistoryMessage({conversationId: 'me|1|another'})
// todo Success
} catch (err) {
// todo error
}
返回参数
无返回值。
Promise<void>
相关回调
- 请求成功,返回
V2NIMSuccessCallback
回调。清空消息成功,返回onClearHistoryNotifications
回调。 - 请求失败,返回
V2NIMFailureCallback
回调,包含消息相关错误码。
清空消息成功,返回 onClearHistoryNotifications
回调。
清空消息成功,返回 clearHistoryNotifications
回调。
updateMessageLocalExtension
接口描述
更新消息本地扩展字段。
- 该方法仅更新本地数据库中的消息,更新不包括已删除、已撤回的消息。
- Web 端不支持该接口。
参数说明
Javavoid updateMessageLocalExtension(V2NIMMessage message, String localExtension, V2NIMSuccessCallback<V2NIMMessage> success, V2NIMFailureCallback failure);
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
message |
V2NIMMessage |
是 | 更新的消息对象。如果为空或不存在则返回 191004 参数错误。 |
localExtension |
String | 是 | 本地扩展字段,必须为 JSON 格式封装,不会多端同步。 |
success |
V2NIMSuccessCallback |
是 | 更新成功回调,返回 V2NIMMessage 。 |
failure |
V2NIMFailureCallback |
是 | 更新失败回调,返回 错误码。 |
Objective-C- (void)updateMessageLocalExtension:(V2NIMMessage *)message
localExtension:(NSString *)localExtension
success:(nullable V2NIMUpdateLocalExtensionSuccess)success
failure:(nullable V2NIMFailureCallback)failure;
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
message |
V2NIMMessage |
是 | 更新的消息对象。如果为空或不存在则返回 191004 参数错误。 |
localExtension |
NSString * | 是 | 本地扩展字段,必须为 JSON 格式封装,不会多端同步。 |
success |
V2NIMUpdateLocalExtensionSuccess |
是 | 更新成功回调,可自定义设置。 |
failure |
V2NIMFailureCallback |
是 | 更新失败回调,返回 错误码。 |
C++virtual void updateMessageLocalExtension(V2NIMMessage message,
nstd::string localExtension,
V2NIMSuccessCallback<V2NIMMessage> success,
V2NIMFailureCallback failure) = 0;
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
message |
V2NIMMessage |
是 | 更新的消息对象。如果为空或不存在则返回 191004 参数错误。 |
localExtension |
nstd::string | 是 | 本地扩展字段,必须为 JSON 格式封装,不会多端同步。 |
success |
V2NIMSuccessCallback |
是 | 更新成功回调,返回 V2NIMMessage 。 |
failure |
V2NIMFailureCallback |
是 | 更新失败回调,返回 错误码。 |
TypeScriptupdateMessageLocalExtension(message, localExtension): Promise<V2NIMMessage>
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
message |
V2NIMMessage |
是 | 更新的消息对象。如果为空或不存在则返回 191004 参数错误。 |
localExtension |
string | 是 | 本地扩展字段,必须为 JSON 格式封装,不会多端同步。 |
TypeScriptupdateMessageLocalExtension(message: V2NIMMessage, localExtension: string): Promise<V2NIMMessage>
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
message |
V2NIMMessage |
是 | 更新的消息对象。如果为空或不存在则返回 191004 参数错误。 |
localExtension |
string | 是 | 本地扩展字段,必须为 JSON 格式封装,不会多端同步。 |
示例代码
JavaV2NIMMessageService v2MessageService = NIMClient.getService(V2NIMMessageService.class);
// V2NIMMessage updateMessage = ; // 被更新的消息
v2MessageService.updateMessageLocalExtension(updateMessage, "xxx",
new V2NIMSuccessCallback<V2NIMMessage>() {
@Override
public void onSuccess(V2NIMMessage v2NIMMessage) {
}
},
new V2NIMFailureCallback() {
@Override
public void onFailure(V2NIMError error) {
}
});
Objective-C[[[NIMSDK sharedSDK] v2MessageService] updateMessageLocalExtension:message
localExtension:@"update local ext"
success:^(V2NIMMessage * _Nonnull result) {
//result 更新后消息
}
failure:^(V2NIMError * _Nonnull error) {
//error 包含错误原因
}];
C++V2NIMMessage message;
// ...
messageService.updateMessageLocalExtension(
message,
"localExtension",
[](V2NIMMessage message) {
// update message local extension succeeded
},
[](V2NIMError error) {
// update message local extension failed, handle error
});
TypeScriptconst message = await v2.messageService.updateMessageLocalExtension(message, 'localExtension')
TypeScriptconst result = await nim.messageService.updateMessageLocalExtension(sendMessage, 'extension')
返回参数
无返回值。
Promise<V2NIMMessage
> 更新的消息对象
相关回调
- 请求成功,返回
V2NIMSuccessCallback
回调,包含更新后的V2NIMMessage
。 - 请求失败,返回
V2NIMFailureCallback
回调,包含消息相关错误码。
- 请求成功,返回
V2NIMUpdateLocalExtensionSuccess
回调,可自定义设置。 - 请求失败,返回
V2NIMFailureCallback
回调,包含消息相关错误码。
无。
insertMessageToLocal
接口描述
插入一条消息到本地数据库。
插入消息成功后,本端会收到消息接收回调 onReceiveMessages
。该消息不会多端同步,且不计入消息未读数,实例销毁后该消息丢失,且不可恢复。
本地插入消息后会话变更:
- 如果本地没有会话,则插入消息后 SDK 自动生成会话,并返回创建成功回调
onConversationCreated
。 - 如果本地已有会话,则 SDK 变更会话的最后一条消息为插入的消息。若该消息被删除,则向前回溯上一条消息为会话最后一条消息。
Web 端不支持该接口。
参数说明
Javavoid insertMessageToLocal(V2NIMMessage message, String conversationId, String senderId, long createTime, V2NIMSuccessCallback<NIMMessage> success, V2NIMFailureCallback failure);
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
message |
V2NIMMessage |
是 | 插入的消息对象。 |
conversationId |
String | 是 | 消息所属的会话 ID,通过调用 V2NIMConversationIdUtil 的对应函数创建。V2NIMConversationType )| 聊天对象账号(accountId)或群组 ID。 |
senderId |
String | 否 | 消息发送方账号(accountId),如果传空或 null 则默认为当前用户账号。 |
createTime |
long | 否 | 插入消息的时间戳。默认为 0,表示 SDK 默认使用当前 NTP 时间。 |
success |
V2NIMSuccessCallback |
是 | 插入消息成功回调,返回 V2NIMMessage 。 |
failure |
V2NIMFailureCallback |
是 | 插入消息失败回调,返回 错误码。 |
Objective-C- (void)insertMessageToLocal:(V2NIMMessage *)message
conversationId:(NSString *)conversationId
senderId:(NSString*)senderId
createTime:(NSTimeInterval)createTime
success:(nullable V2NIMInertMessagSuccess)success
failure:(nullable V2NIMFailureCallback)failure;
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
message |
V2NIMMessage |
是 | 插入的消息对象。如果为空或不存在则返回 191004 参数错误。 |
conversationId |
NSString * | 是 | 消息所属的会话 ID,通过调用 V2NIMConversationIdUtil 的对应函数创建。V2NIMConversationType )| 聊天对象账号(accountId)或群组 ID。 |
senderId |
NSTimeInterval | 否 | 消息发送方账号(accountId),如果传空或 null 则默认为当前用户账号。 |
createTime |
Long | 否 | 插入消息的时间戳。默认为 0,表示 SDK 默认使用当前 NTP 时间。 |
success |
V2NIMInertMessagSuccess |
是 | 插入消息成功回调,可自定义设置。 |
failure |
V2NIMFailureCallback |
是 | 插入消息失败回调,返回 错误码。 |
C++virtual void insertMessageToLocal(V2NIMMessage message,
nstd::string conversationId,
nstd::string senderId,
uint64_t createTime,
V2NIMSuccessCallback<V2NIMMessage> success,
V2NIMFailureCallback failure) = 0;
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
message |
V2NIMMessage |
是 | 插入的消息对象。如果为空或不存在则返回 191004 参数错误。 |
conversationId |
nstd::string | 是 | 消息所属的会话 ID,通过调用 V2NIMConversationIdUtil 的对应函数创建。V2NIMConversationType )| 聊天对象账号(accountId)或群组 ID。 |
senderId |
nstd::string | 否 | 消息发送方账号(accountId),如果传空或 null 则默认为当前用户账号。 |
createTime |
uint64_t | 否 | 插入消息的时间戳。默认为 0,表示 SDK 默认使用当前 NTP 时间。 |
success |
V2NIMSuccessCallback |
是 | 插入消息成功回调,返回 V2NIMMessage 。 |
failure |
V2NIMFailureCallback |
是 | 插入消息失败回调,返回 错误码。 |
TypeScriptinsertMessageToLocal(message, conversationId, senderId, createTime): Promise<V2NIMMessage>
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
message |
V2NIMMessage |
是 | 插入的消息对象。如果为空或不存在则返回 191004 参数错误。 |
conversationId |
string | 是 | 消息所属的会话 ID,通过调用 V2NIMConversationIdUtil 的对应函数创建。V2NIMConversationType )| 聊天对象账号(accountId)或群组 ID。 |
senderId |
string | 否 | 消息发送方账号(accountId),如果传空或 null 则默认为当前用户账号。 |
createTime |
number | 否 | 插入消息的时间戳。默认为 0,表示 SDK 默认使用当前 NTP 时间。 |
TypeScriptinsertMessageToLocal(message: V2NIMMessage, conversationId: string, senderId?: string, createTime?: number)
:Promise<V2NIMMessage>
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
message |
V2NIMMessage |
是 | 插入的消息对象。如果为空或不存在则返回 191004 参数错误。 |
conversationId |
string | 是 | 消息所属的会话 ID,通过调用 V2NIMConversationIdUtil 的对应函数创建。V2NIMConversationType )| 聊天对象账号(accountId)或群组 ID。 |
senderId |
string | 否 | 消息发送方账号(accountId),如果传空或 null 则默认为当前用户账号。 |
createTime |
number | 否 | 插入消息的时间戳。默认为 0,表示 SDK 默认使用当前 NTP 时间。 |
::::::
示例代码
JavaV2NIMMessageService v2MessageService = NIMClient.getService(V2NIMMessageService.class);
// 构建被插入的消息
V2NIMMessage v2NIMMessage = V2NIMMessageCreator.createTextMessage("xxx");
V2NIMConversationType conversationType = V2NIMConversationType.V2NIM_CONVERSATION_TYPE_P2P;
String conversationId = V2NIMConversationIdUtil.conversationId("xxx", conversationType);
v2MessageService.insertMessageToLocal(v2NIMMessage, conversationId, "xxx", 0,
new V2NIMSuccessCallback<NIMMessage>() {
@Override
public void onSuccess(NIMMessage nimMessage) {
}
},
new V2NIMFailureCallback() {
@Override
public void onFailure(V2NIMError error) {
}
});
Objective-C[[[NIMSDK sharedSDK] v2MessageService] insertMessageToLocal:message
conversationId:@"conversaionId"
senderId:@"senderId"
createTime:1698809881
success:^(V2NIMMessage * _Nonnull result) {
// result 插入消息成功
} failure:^(V2NIMError * _Nonnull error) {
// error 包含错误原因
}];
C++auto conversationId = V2NIMConversationIdUtil::p2pConversationId("target_account_id");
auto message = V2NIMMessageCreator::createTextMessage("hello world");
messageService.insertMessageToLocal(
message,
conversationId,
"target_account_id",
0,
[](V2NIMMessage message) {
// Insert local message succeeded
},
[](V2NIMError error) {
// Insert local message failed, handle error
});
TypeScriptconst message = await v2.messageService.insertMessageToLocal(message, conversationId, senderId, createTime)
TypeScriptconst messageResult:V2NIMMessage = await nim.messageService.insertMessageToLocal(message, conversationId)
返回参数
无返回值。
Promise<V2NIMMessage
> 插入的消息对象
相关回调
- 请求成功,返回
V2NIMSuccessCallback
回调,包含插入的V2NIMMessage
。 - 请求失败,返回
V2NIMFailureCallback
回调,包含消息相关错误码。
- 请求成功,返回
V2NIMInertMessagSuccess
回调,可自定义设置。 - 请求失败,返回
V2NIMFailureCallback
回调,包含消息相关错误码。
无。
cancelMessageAttachmentUpload
接口描述
取消上传消息附件。
- 该方法仅支持取消文件类消息(图片、视频、文件)的附件上传。
- 无法取消已经上传成功的附件。
- 如果取消上传成功,消息附件上传状态会转变为上传失败
V2NIM_MESSAGE_ATTACHMENT_UPLOAD_STATE_FAILED
,对应的文件类消息会发送失败。
参数说明
Javavoid cancelMessageAttachmentUpload(V2NIMMessage message, V2NIMSuccessCallback<Void> success, V2NIMFailureCallback failure);
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
message |
V2NIMMessage |
是 | 取消附件上传的消息对象。该消息必须为图片、视频、文件类型。 |
success |
V2NIMSuccessCallback |
是 | 取消成功回调 |
failure |
V2NIMFailureCallback |
是 | 取消失败回调,返回 错误码。 |
Objective-C- (void)cancelMessageAttachmentUpload:(V2NIMMessage *)message
success:(nullable V2NIMSuccessCallback)success
failure:(nullable V2NIMFailureCallback)failure;
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
message |
V2NIMMessage |
是 | 取消附件上传的消息对象。该消息必须为图片、视频、文件类型。 |
success |
V2NIMSuccessCallback |
是 | 取消成功回调 |
failure |
V2NIMFailureCallback |
是 | 取消失败回调,返回 错误码。 |
C++virtual void cancelMessageAttachmentUpload(V2NIMMessage message, V2NIMSuccessCallback<void> success, V2NIMFailureCallback failure) = 0;
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
message |
V2NIMMessage |
是 | 取消附件上传的消息对象。该消息必须为图片、视频、文件类型。 |
success |
V2NIMSuccessCallback |
是 | 取消成功回调 |
failure |
V2NIMFailureCallback |
是 | 取消失败回调,返回 错误码。 |
TypeScriptcancelMessageAttachmentUpload(message: V2NIMMessage): Promise<void>
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
message |
V2NIMMessage |
是 | 取消附件上传的消息对象。该消息必须为图片、视频、文件类型。 |
TypeScriptcancelMessageAttachmentUpload(message): Promise<void>
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
message |
V2NIMMessage |
是 | 取消附件上传的消息对象。该消息必须为图片、视频、文件类型。 |
TypeScriptcancelMessageAttachmentUpload(message: V2NIMMessage): Promise<void>
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
message |
V2NIMMessage |
是 | 取消附件上传的消息对象。该消息必须为图片、视频、文件类型。 |
示例代码
JavaV2NIMMessageService v2MessageService = NIMClient.getService(V2NIMMessageService.class);
v2MessageService.cancelMessageAttachmentUpload(message,
new V2NIMSuccessCallback<Void>() {
@Override
public void onSuccess(Void unused) {
// cancel succeeded
}
},
new V2NIMFailureCallback() {
@Override
public void onFailure(V2NIMError error) {
// cancel failed, handle error
}
});
Objective-C[[[NIMSDK sharedSDK] v2MessageService] cancelMessageAttachmentUpload:message
success:^{
//取消成功
}
failure:^(V2NIMError * _Nonnull error) {
//error 包含错误原因
}];
C++V2NIMMessage message;
// more code
messageService.cancelMessageAttachmentUpload(
message,
[]() {
// cancel message attachment upload succeeded
},
[](V2NIMError error) {
// cancel message attachment upload failed, handle error
});
TypeScripttry {
await nim.V2NIMMessageService.cancelMessageAttachmentUpload(message)
// todo Success
} catch (err) {
// todo error
}
TypeScripttry {
await v2.messageService.cancelMessageAttachmentUpload(message)
// todo Success
} catch (err) {
// todo error
}
TypeScripttry {
await nim.messageService.cancelMessageAttachmentUpload(message)
// todo Success
} catch (err) {
// todo error
}
返回参数
无返回值。
Promise<void>
相关回调
- 请求成功,返回
V2NIMSuccessCallback
回调。 - 请求失败,返回
V2NIMFailureCallback
回调,包含消息相关错误码。
无。
replyMessage
接口描述
发送一条回复消息。
发送回复消息前,请至网易云信控制台 开通会话消息回复功能,并调用 V2NIMMessageCreator
中的接口创建回复消息。
参数说明
Javavoid replyMessage(V2NIMMessage message,
V2NIMMessage replyMessage,
V2NIMSendMessageParams params,
V2NIMSuccessCallback<V2NIMSendMessageResult> success,
V2NIMFailureCallback failure,
V2NIMProgressCallback progress);
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
message |
V2NIMMessage |
是 | 发送的消息对象,通过调用 V2NIMMessageCreator 中的接口创建。如果为空或不存在则返回 191004 参数错误。 |
replyMessage |
V2NIMMessage |
是 | 被回复的消息对象,如果为空或不存在则返回 191004 参数错误。 |
params |
V2NIMSendMessageParams |
否 | 消息发送配置参数,包括发送、推送、抄送、反垃圾等配置。 |
success |
V2NIMSuccessCallback |
是 | 消息发送成功回调,返回 V2NIMSendMessageResult 。 |
failure |
V2NIMFailureCallback |
是 | 消息发送失败回调,返回 错误码。 |
progress |
V2NIMProgressCallback |
否 | 附件上传进度回调,用于图片、语音、视频、文件类型消息。 |
Objective-C- (void)replyMessage:(V2NIMMessage *)message
replyMessage:(V2NIMMessage *)replyMessage
params:(V2NIMSendMessageParams *)params
success:(nullable V2NIMSendMessageSuccess)success
failure:(nullable V2NIMFailureCallback)failure
progress:(nullable V2NIMProgressCallback)progress;
参数名称 | 类型 | 是否必填 | 说明 | |
---|---|---|---|---|
message |
V2NIMMessage |
是 | 发送的消息对象,通过调用 V2NIMMessageCreator 中的接口创建。如果为空或不存在则返回 191004 参数错误。 |
|
replyMessage |
V2NIMMessage |
是 | 被回复的消息对象,如果为空或不存在则返回 191004 参数错误。 | |
params |
V2NIMSendMessageParams |
否 | 消息发送配置参数,包括发送、推送、抄送、反垃圾等配置。 | |
success |
V2NIMSendMessageSuccess |
是 | 消息发送成功回调,可自定义设置。 | |
failure |
V2NIMFailureCallback |
是 | 消息发送失败回调,返回 错误码。 | |
progress |
V2NIMProgressCallback |
否 | 附件上传进度回调,用于图片、语音、视频、文件类型消息。 |
C++virtual void replyMessage(V2NIMMessage message,
V2NIMMessage replyMessage,
V2NIMSendMessageParams params,
V2NIMSuccessCallback<V2NIMSendMessageResult> success,
V2NIMFailureCallback failure,
V2NIMProgressCallback progress) = 0;
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
message |
V2NIMMessage |
是 | 发送的消息对象,通过调用 V2NIMMessageCreator 中的接口创建。如果为空或不存在则返回 191004 参数错误。 |
replyMessage |
V2NIMMessage |
是 | 被回复的消息对象,如果为空或不存在则返回 191004 参数错误。 |
params |
V2NIMSendMessageParams |
否 | 消息发送配置参数,包括发送、推送、抄送、反垃圾等配置。 |
success |
V2NIMSuccessCallback |
是 | 消息发送成功回调,返回 V2NIMSendMessageResult 。 |
failure |
V2NIMFailureCallback |
是 | 消息发送失败回调,返回 错误码。 |
progress |
V2NIMProgressCallback |
否 | 附件上传进度回调,用于图片、语音、视频、文件类型消息。 |
TypeScriptreplyMessage(
message: V2NIMMessage,
replyMessage: V2NIMMessage,
params?: V2NIMSendMessageParams,
progress?: (percentage: number) => void
): Promise<V2NIMSendMessageResult>
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
message |
V2NIMMessage |
是 | 发送的消息对象,通过调用 V2NIMMessageCreator 中的接口创建。如果为空或不存在则返回 191004 参数错误。 |
replyMessage |
V2NIMMessage |
是 | 被回复的消息对象,如果为空或不存在则返回 191004 参数错误。 |
params |
V2NIMSendMessageParams |
否 | 消息发送配置参数,包括发送、推送、抄送、反垃圾等配置。 |
progress |
number | 否 | 附件上传进度百分比,用于图片、语音、视频、文件类型消息。 |
TypeScriptreplyMessage(message, replyMessage, params, progressCallback): Promise<V2NIMSendMessageResult>
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
message |
V2NIMMessage |
是 | 发送的消息对象,通过调用 V2NIMMessageCreator 中的接口创建。如果为空或不存在则返回 191004 参数错误。 |
replyMessage |
V2NIMMessage |
是 | 被回复的消息对象,如果为空或不存在则返回 191004 参数错误。 |
params |
V2NIMSendMessageParams |
否 | 消息发送配置参数,包括发送、推送、抄送、反垃圾等配置。 |
progress |
number | 否 | 附件上传进度百分比,用于图片、语音、视频、文件类型消息。 |
TypeScriptreplyMessage(
message: V2NIMMessage,
replyMessage: V2NIMMessage,
params?: V2NIMSendMessageParams,
progress?: (percentage: number) => void
): Promise<V2NIMSendMessageResult>
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
message |
V2NIMMessage |
是 | 发送的消息对象,通过调用 V2NIMMessageCreator 中的接口创建。如果为空或不存在则返回 191004 参数错误。 |
replyMessage |
V2NIMMessage |
是 | 被回复的消息对象,如果为空或不存在则返回 191004 参数错误。 |
params |
V2NIMSendMessageParams |
否 | 消息发送配置参数,包括发送、推送、抄送、反垃圾等配置。 |
progress |
number | 否 | 附件上传进度百分比,用于图片、语音、视频、文件类型消息。 |
示例代码
JavaV2NIMMessageService v2MessageService = NIMClient.getService(V2NIMMessageService.class);
V2NIMMessage v2Message = V2NIMMessageCreator.createTextMessage("xxx");
// V2NIMMessage replyMessage = ; // 被回复的消息
// 根据实际情况配置
V2NIMMessageAntispamConfig antispamConfig = V2NIMMessageAntispamConfig.V2NIMMessageAntispamConfigBuilder.builder()
.withAntispamBusinessId()
.withAntispamCheating()
.withAntispamCustomMessage()
.withAntispamEnabled()
.withAntispamExtension()
.build();
// 根据实际情况配置
V2NIMMessageConfig messageConfig = V2NIMMessageConfig.V2NIMMessageConfigBuilder.builder()
.withLastMessageUpdateEnabled()
.withHistoryEnabled()
.withOfflineEnabled()
.withOnlineSyncEnabled()
.withReadReceiptEnabled()
.withRoamingEnabled()
.withUnreadEnabled()
.build();
// 根据实际情况配置
V2NIMMessagePushConfig pushConfig = V2NIMMessagePushConfig.V2NIMMessagePushConfigBuilder.builder()
.withContent()
.withForcePush()
.withForcePushAccountIds()
.withForcePushContent()
.withPayload()
.withPushEnabled()
.withPushNickEnabled()
.build();
// 根据实际情况配置
V2NIMMessageRobotConfig robotConfig = V2NIMMessageRobotConfig.V2NIMMessageRobotConfigBuilder.builder()
.withAccountId()
.withCustomContent()
.withFunction()
.withTopic()
.build();
// 根据实际情况配置
V2NIMMessageRouteConfig routeConfig = V2NIMMessageRouteConfig.V2NIMMessageRouteConfigBuilder.builder()
.withRouteEnabled()
.withRouteEnvironment()
.build();
// 根据实际情况配置
V2NIMSendMessageParams sendMessageParams = V2NIMSendMessageParams.V2NIMSendMessageParamsBuilder.builder()
.withAntispamConfig(antispamConfig)
.withClientAntispamEnabled()
.withClientAntispamReplace()
.withMessageConfig(messageConfig)
.withPushConfig(pushConfig)
.withRobotConfig(robotConfig)
.withRouteConfig(routeConfig)
.build();
v2MessageService.replyMessage(v2Message, replyMessage, sendMessageParams,
new V2NIMSuccessCallback<V2NIMSendMessageResult>() {
@Override
public void onSuccess(V2NIMSendMessageResult v2NIMSendMessageResult) {
// TODO: 发送成功
}
},
new V2NIMFailureCallback() {
@Override
public void onFailure(V2NIMError error) {
// TODO: 发送失败
}
},
new V2NIMProgressCallback() {
@Override
public void onProgress(int progress) {
// TODO: 发送进度
}
});
Objective-CV2NIMMessage *replyMessage = [V2NIMMessageCreator createTextMessage:@"reply message"];
// 消息见参数设置文档
V2NIMSendMessageParams *params = [[V2NIMSendMessageParams alloc] init];
[[[NIMSDK sharedSDK] v2MessageService] sendMessage:replyMessage
conversationId:@"conversationId"
params:params
success:^(V2NIMSendMessageResult * _Nonull result) {
// 发送成功回调
}
failure:^(V2NIMError * _Nonnull error) {
// 发送失败回调,error 包含错误原因
}
progress:^(NSUInteger progress) {
// 发送进行
}];
V2NIMMessage *message = [V2NIMMessageCreator createTextMessage:@"message"];
[[[NIMSDK sharedSDK] v2MessageService] replyMessage:message
replyMessage:replyMessage
params:params
success:^(V2NIMSendMessageResult * _Nonnull result) {
// 发送成功回调
}
failure:^(V2NIMError * _Nonnull error) {
// 发送失败回调,error 包含错误原因
}
progress:^(NSUInteger progress) {
// 发送进行
}];
C++auto message = V2NIMMessageCreator::createTextMessage("hello world");
auto params = V2NIMSendMessageParams();
messageService.replyMessage(
message,
replyMessage,
params,
[](V2NIMSendMessageResult result) {
// reply message succeeded
},
[](V2NIMError error) {
// reply message failed, handle error
},
[](uint32_t progress) {
// upload progress
});
TypeScripttry {
const message: V2NIMMessage = nim.V2NIMMessageCreator.createTextMessage("reply text")
const result: V2NIMSendMessageResult = await nim.V2NIMMessageService.replyMessage(message, repliedMessage)
// todo Success
} catch (err) {
// todo error
}
TypeScripttry {
const replyMessage = v2.messageCreator.createTextMessage('Hello NTES IM')
const result = await v2.messageService.replyMessage(message, replyMessage, params, progressCallback)
// todo Success
} catch (err) {
// todo error
}
TypeScripttry {
const message: V2NIMMessage = nim.messageCreator.createTextMessage("reply text")
const result: V2NIMSendMessageResult = await nim.messageService.replyMessage(message, repliedMessage)
// todo Success
} catch (err) {
// todo error
}
返回参数
无返回值。
Promise<V2NIMSendMessageResult
> 消息发送结果
相关回调
- 请求成功,返回
V2NIMSuccessCallback
回调,包含V2NIMSendMessageResult
。 - 请求失败,返回
V2NIMFailureCallback
回调,包含消息相关错误码。
- 请求成功,返回
V2NIMSendMessageSuccess
回调,可自定义设置。 - 请求失败,返回
V2NIMFailureCallback
回调,包含消息相关错误码。
无。
getMessageListByRefers
接口描述
根据消息参考信息批量查询消息列表。获取结果不包含已删除、已撤回的消息。
SDK 查询策略如下:
- 当消息数据不明确时,可使用该接口获取消息。推荐回复消息、PIN 消息场景下使用。
- 如果会话数据同步已开始(收到
V2NIMConversationListener.onSyncStarted
回调),建议您在数据同步完成(收到V2NIMConversationListener.onSyncFinished
回调)后再进行该操作,否则可能查询不到完整消息数据。
参数说明
Javavoid getMessageListByRefers(List<V2NIMMessageRefer> messageRefers, V2NIMSuccessCallback<List<V2NIMMessage>> success, V2NIMFailureCallback failure);
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
messageRefers |
List<V2NIMMessageRefer > |
是 | 消息参考信息对象。不能为空,否则返回 191004 参数错误。 |
success |
V2NIMSuccessCallback |
是 | 查询成功回调,返回 V2NIMMessage 列表。 |
failure |
V2NIMFailureCallback |
是 | 查询失败回调,返回 错误码。 |
Objective-C- (void)getMessageListByRefers:(NSArray<V2NIMMessageRefer *> *)messageRefers
success:(nullable V2NIMGetMessageListSuccess)success
failure:(nullable V2NIMFailureCallback)failure;
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
messageRefers |
NSArray<V2NIMMessageRefer *> * |
是 | 消息参考信息对象。不能为空,否则返回 191004 参数错误。 |
success |
V2NIMGetMessageListSuccess |
是 | 查询成功回调,可自定义设置。 |
failure |
V2NIMFailureCallback |
是 | 查询失败回调,返回 错误码。 |
C++virtual void getMessageListByRefers(nstd::vector<V2NIMMessageRefer> messageRefers,
V2NIMSuccessCallback<nstd::vector<V2NIMMessage>> success,
V2NIMFailureCallback failure) = 0;
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
messageRefers |
nstd::vector<V2NIMMessageRefer > |
是 | 消息参考信息对象。不能为空,否则返回 191004 参数错误。 |
success |
V2NIMSuccessCallback |
是 | 查询成功回调,返回 V2NIMMessage 列表。 |
failure |
V2NIMFailureCallback |
是 | 查询失败回调,返回 错误码。 |
TypeScriptgetMessageListByRefers(messageRefers: V2NIMMessageRefer[]): Promise<V2NIMMessage[]>
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
messageRefers |
V2NIMMessageRefer [] |
是 | 消息参考信息对象。不能为空,否则返回 191004 参数错误。 |
TypeScriptgetMessageListByRefers(messageRefers): Promise<V2NIMMessage[]>
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
messageRefers |
V2NIMMessageRefer [] |
是 | 消息参考信息对象。不能为空,否则返回 191004 参数错误。 |
TypeScriptgetMessageListByRefers(messageRefers: V2NIMMessageRefer[]): Promise<V2NIMMessage[]>
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
messageRefers |
V2NIMMessageRefer [] |
是 | 消息参考信息对象。不能为空,否则返回 191004 参数错误。 |
示例代码
JavaV2NIMMessageService v2MessageService = NIMClient.getService(V2NIMMessageService.class);
List<V2NIMMessageRefer> messageRefers = new ArrayList<>();
// 根据实际情况增加
// messageRefers.add(messageRefer);
v2MessageService.getMessageListByRefers(messageRefers,
new V2NIMSuccessCallback<List<V2NIMMessage>>() {
@Override
public void onSuccess(List<V2NIMMessage> v2NIMMessages) {
}
},
new V2NIMFailureCallback() {
@Override
public void onFailure(V2NIMError error) {
}
});
:::
Objective-CV2NIMMessageRefer *refer1 = [[V2NIMMessageRefer alloc] init];
V2NIMMessageRefer *refer2 = [[V2NIMMessageRefer alloc] init];
V2NIMMessageRefer *refern = [[V2NIMMessageRefer alloc] init];
NSArray *refers = @[refer1, refer2, refern];
[[[NIMSDK sharedSDK] v2MessageService] getMessageListByRefers:refers
success:^(NSArray<V2NIMMessage *> * _Nonnull result) {
// result 返回消息数组
}
failure:^(V2NIMError * _Nonnull error) {
// error 包含错误原因
}];
C++nstd::vector<V2NIMMessageRefer> messageRefers;
// ...
messageService.getMessageListByRefers(
messageRefers,
[](nstd::vector<V2NIMMessage> messages) {
for (auto&& message : messages) {
// do something
}
},
[](V2NIMError error) {
// get message list by refers failed, handle error
});
TypeScripttry {
const res: V2NIMMessage[] = await nim.V2NIMMessageService.getMessageListByRefers(
[{
senderId: 'me',
receiverId: 'another',
messageClientId: 'messageClientId',
messageServerId: 'messageServerId',
conversationType: 1,
conversationId: 'me|1|another',
createTime: 232312
}]
)
// todo Success
} catch (err) {
// todo error
}
TypeScripttry {
const messages = await v2.messageService.getMessageListByRefers(messageRefers)
// todo Success
} catch (err) {
// todo error
}
TypeScripttry {
const res: V2NIMMessage[] = await nim.messageService.getMessageListByRefers(
[{
senderId: 'me',
receiverId: 'another',
messageClientId: 'messageClientId',
messageServerId: 'messageServerId',
conversationType: 1,
conversationId: 'me|1|another',
createTime: 232312
}]
)
// todo Success
} catch (err) {
// todo error
}
返回参数
无返回值。
Promise<V2NIMMessage
> Thread 父消息和根消息列表
相关回调
- 请求成功,返回
V2NIMSuccessCallback
回调,包含V2NIMMessage
。 - 请求失败,返回
V2NIMFailureCallback
回调,包含消息相关错误码。
- 请求成功,返回
V2NIMGetMessageListSuccess
回调,可自定义设置。 - 请求失败,返回
V2NIMFailureCallback
回调,包含消息相关错误码。
无。
pinMessage
接口描述
PIN 一条消息。
本地端或多端同步 PIN 消息成功后,消息发送方和消息接收方均会收到 PIN 消息状态变化通知回调 onMessagePinNotification
,并同步数据库和缓存。
- 调用 PIN 消息接口前,请至网易云信控制台 开通会话消息标记功能。
- 仅支持 Pin 已发送成功的消息,一个会话最多支持 Pin 100 条消息。
- 如果会话数据同步已开始(收到
V2NIMConversationListener.onSyncStarted
回调),建议您在数据同步完成(收到V2NIMConversationListener.onSyncFinished
回调)后再进行该操作。
参数说明
Javavoid pinMessage(V2NIMMessage message, String serverExtension, V2NIMSuccessCallback<Void> success, V2NIMFailureCallback failure);
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
message |
V2NIMMessage |
是 | 被 PIN 的消息对象。 |
serverExtension |
String | 否 | 消息服务端扩展字段。必须为 JSON 格式封装,长度上限为 1024 字节,多端同步。 |
success |
V2NIMSuccessCallback |
是 | PIN 成功回调 |
failure |
V2NIMFailureCallback |
是 | PIN 失败回调,返回 错误码。 |
Objective-C- (void)pinMessage:(V2NIMMessage *)message
serverExtension:(NSString *)serverExtension
success:(nullable V2NIMSuccessCallback)success
failure:(nullable V2NIMFailureCallback)failure;
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
message |
V2NIMMessage * |
是 | 被 PIN 的消息对象。 |
serverExtension |
NSString * | 否 | 消息服务端扩展字段。必须为 JSON 格式封装,长度上限为 1024 字节,多端同步。 |
success |
V2NIMSuccessCallback |
是 | PIN 成功回调 |
failure |
V2NIMFailureCallback |
是 | PIN 失败回调,返回 错误码。 |
C++virtual void pinMessage(V2NIMMessage message,
nstd::optional<nstd::string> serverExtension,
V2NIMSuccessCallback<void> success,
V2NIMFailureCallback failure) = 0;
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
message |
V2NIMMessage |
是 | 被 PIN 的消息对象。 |
serverExtension |
nstd::optionalnstd::string | 否 | 消息服务端扩展字段。必须为 JSON 格式封装,长度上限为 1024 字节,多端同步。 |
success |
V2NIMSuccessCallback |
是 | PIN 成功回调 |
failure |
V2NIMFailureCallback |
是 | PIN 失败回调,返回 错误码。 |
TypeScriptpinMessage(message: V2NIMMessage, serverExtension?: string): Promise<void>
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
message |
V2NIMMessage |
是 | 被 PIN 的消息对象。 |
serverExtension |
string | 否 | 消息服务端扩展字段。必须为 JSON 格式封装,长度上限为 1024 字节,多端同步。 |
TypeScriptpinMessage(message, serverExtension): Promise<void>
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
message |
V2NIMMessage |
是 | 被 PIN 的消息对象。 |
serverExtension |
string | 否 | 消息服务端扩展字段。必须为 JSON 格式封装,长度上限为 1024 字节,多端同步。 |
TypeScriptpinMessage(message: V2NIMMessage, serverExtension?: string): Promise<void>
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
message |
V2NIMMessage |
是 | 被 PIN 的消息对象。 |
serverExtension |
string | 否 | 消息服务端扩展字段。必须为 JSON 格式封装,长度上限为 1024 字节,多端同步。 |
示例代码
JavaV2NIMMessageService v2MessageService = NIMClient.getService(V2NIMMessageService.class);
// V2NIMMessage pinMessage = ; // 被 pin 的消息
v2MessageService.pinMessage(pinMessage, "xxx",
new V2NIMSuccessCallback<Void>() {
@Override
public void onSuccess(Void unused) {
// success
}
},
new V2NIMFailureCallback() {
@Override
public void onFailure(V2NIMError error) {
// failed, handle error
}
});
Objective-C[[[NIMSDK sharedSDK] v2MessageService] pinMessage:message
serverExtension:@"json string"
success:^{
}
failure:^(V2NIMError * _Nonnull error) {
// error 包含错误原因
}];
C++V2NIMMessage message;
// ...
messageService.pinMessage(
message,
"serverExtension",
[]() {
// pin message succeeded
},
[](V2NIMError error) {
// pin message failed, handle error
});
TypeScripttry {
await nim.V2NIMMessageService.pinMessage(message, 'serverExtension')
// todo Success
} catch (err) {
// todo error
}
TypeScripttry {
await v2.messageService.pinMessage(message, 'serverExtension')
// todo Success
} catch (err) {
// todo error
}
TypeScripttry {
await nim.messageService.pinMessage(message, 'serverExtension')
// todo Success
} catch (err) {
// todo error
}
返回参数
无返回值。
Promise<void>
相关回调
- 请求成功,返回
V2NIMSuccessCallback
回调。PIN 成功,返回onMessagePinNotification
回调。 - 请求失败,返回
V2NIMFailureCallback
回调,包含消息相关错误码。
PIN 成功,返回 onMessagePinNotification
回调。
PIN 成功,返回 messagePinNotification
回调。
unpinMessage
接口描述
取消一条 PIN 消息。
本地端或多端同步取消 PIN 消息成功后,消息发送方和消息接收方均会收到 PIN 消息状态变化通知回调 onMessagePinNotification
,并同步数据库和缓存。
如果会话数据同步已开始(收到 V2NIMConversationListener.onSyncStarted
回调),建议您在数据同步完成(收到 V2NIMConversationListener.onSyncFinished
回调)后再进行该操作。
参数说明
Javavoid unpinMessage(V2NIMMessageRefer messageRefer, String serverExtension, V2NIMSuccessCallback<Void> success, V2NIMFailureCallback failure);
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
messageRefer |
V2NIMMessageRefer |
是 | 被取消 PIN 的消息参考信息。 |
serverExtension |
String | 否 | 消息服务端扩展字段。必须为 JSON 格式封装,长度上限为 1024 字节,多端同步。 |
success |
V2NIMSuccessCallback |
是 | 取消 PIN 成功回调 |
failure |
V2NIMFailureCallback |
是 | 取消 PIN 失败回调,返回 错误码。 |
Objective-C- (void)unpinMessage:(V2NIMMessageRefer *)messageRefer
serverExtension:(NSString *)serverExtension
success:(nullable V2NIMSuccessCallback)success
failure:(nullable V2NIMFailureCallback)failure;
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
messageRefer |
V2NIMMessageRefer |
是 | 被取消 PIN 的消息参考信息。 |
serverExtension |
NSString * | 否 | 消息服务端扩展字段。必须为 JSON 格式封装,长度上限为 1024 字节,多端同步。 |
success |
V2NIMSuccessCallback |
是 | 取消 PIN 成功回调 |
failure |
V2NIMFailureCallback |
是 | 取消 PIN 失败回调,返回 错误码。 |
C++virtual void unpinMessage(V2NIMMessageRefer messageRefer,
nstd::optional<nstd::string> serverExtension,
V2NIMSuccessCallback<void> success,
V2NIMFailureCallback failure) = 0;
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
messageRefer |
V2NIMMessageRefer |
是 | 被取消 PIN 的消息参考信息。 |
serverExtension |
nstd::optionalnstd::string | 否 | 消息服务端扩展字段。必须为 JSON 格式封装,长度上限为 1024 字节,多端同步。 |
success |
V2NIMSuccessCallback |
是 | 取消 PIN 成功回调 |
failure |
V2NIMFailureCallback |
是 | 取消 PIN 失败回调,返回 错误码。 |
TypeScriptunpinMessage(messageRefer: V2NIMMessageRefer, serverExtension?: string): Promise<void>
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
messageRefer |
V2NIMMessageRefer |
是 | 被取消 PIN 的消息参考信息。 |
serverExtension |
string | 否 | 消息服务端扩展字段。必须为 JSON 格式封装,长度上限为 1024 字节,多端同步。 |
TypeScriptunpinMessage(messageRefer, serverExtension): Promise<void>
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
messageRefer |
V2NIMMessageRefer |
是 | 被取消 PIN 的消息参考信息。 |
serverExtension |
string | 否 | 消息服务端扩展字段。必须为 JSON 格式封装,长度上限为 1024 字节,多端同步。 |
TypeScriptunpinMessage(messageRefer: V2NIMMessageRefer, serverExtension?: string): Promise<void>
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
messageRefer |
V2NIMMessageRefer |
是 | 被取消 PIN 的消息参考信息。 |
serverExtension |
string | 否 | 消息服务端扩展字段。必须为 JSON 格式封装,长度上限为 1024 字节,多端同步。 |
示例代码
JavaV2NIMMessageService v2MessageService = NIMClient.getService(V2NIMMessageService.class);
// V2NIMMessageRefer unpinMessageRefer // 被 unpin 的消息引用
v2MessageService.unpinMessage(unpinMessageRefer, "xxx",
new V2NIMSuccessCallback<Void>() {
@Override
public void onSuccess(Void unused) {
// success
}
},
new V2NIMFailureCallback() {
@Override
public void onFailure(V2NIMError error) {
// failed, handle error
}
});
Objective-C[[[NIMSDK sharedSDK] v2MessageService] unpinMessage:message
serverExtension:@"json string"
success:^{
}
failure:^(V2NIMError * _Nonnull error) {
//error 包含错误原因
}];
C++V2NIMMessageRefer messageRefer;
// ...
messageService.unpinMessage(
messageRefer,
"serverExtension",
[]() {
// unpin message succeeded
},
[](V2NIMError error) {
// unpin message failed, handle error
});
TypeScripttry {
await nim.V2NIMMessageService.unpinMessage(messageRefer, 'serverExtension')
// todo Success
} catch (err) {
// todo error
}
TypeScripttry {
await v2.messageService.unpinMessage(messageRefer, 'serverExtension')
// todo Success
} catch (err) {
// todo error
}
TypeScripttry {
await nim.messageService.unpinMessage(messageRefer, 'serverExtension')
// todo Success
} catch (err) {
// todo error
}
返回参数
无返回值。
Promise<void>
相关回调
- 请求成功,返回
V2NIMSuccessCallback
回调。取消 PIN 成功,返回onMessagePinNotification
回调。 - 请求失败,返回
V2NIMFailureCallback
回调,包含消息相关错误码。
取消 PIN 成功,返回 onMessagePinNotification
回调。
取消 PIN 成功,返回 messagePinNotification
回调。
updatePinMessage
接口描述
更新指定 PIN 消息的服务端扩展字段。
本地端或多端同步更新 PIN 消息成功后,消息发送方和消息接收方均会收到 PIN 消息状态变化通知回调 onMessagePinNotification
,并同步数据库和缓存。
- 如果更新 PIN 消息的操作人非当前登录账号,则
V2NIMMessagePin.operatorId
变更为更新 PIN 消息的实际操作人。 - 如果会话数据同步已开始(收到
V2NIMConversationListener.onSyncStarted
回调),建议您在数据同步完成(收到V2NIMConversationListener.onSyncFinished
回调)后再进行该操作。
参数说明
Javavoid updatePinMessage(V2NIMMessage message, String serverExtension, V2NIMSuccessCallback<Void> success, V2NIMFailureCallback failure);
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
message |
V2NIMMessage |
是 | 被 PIN 的消息对象。如果为空或不存在则返回 191004 参数错误。 |
serverExtension |
String | 否 | PIN 消息的服务端扩展字段。必须为 JSON 格式封装,长度上限为 1024 字节,多端同步。 |
success |
V2NIMSuccessCallback |
是 | 更新成功回调 |
failure |
V2NIMFailureCallback |
是 | 更新失败回调,返回 错误码。 |
Objective-C- (void)updatePinMessage:(V2NIMMessage *)message
serverExtension:(NSString *)serverExtension
success:(nullable V2NIMSuccessCallback)success
failure:(nullable V2NIMFailureCallback)failure;
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
message |
V2NIMMessage * |
是 | 被 PIN 的消息对象。如果为空或不存在则返回 191004 参数错误。 |
serverExtension |
NSString * | 否 | PIN 消息的服务端扩展字段。必须为 JSON 格式封装,长度上限为 1024 字节,多端同步。 |
success |
V2NIMSuccessCallback |
是 | 更新成功回调 |
failure |
V2NIMFailureCallback |
是 | 更新失败回调,返回 错误码。 |
C++virtual void updatePinMessage(V2NIMMessage message,
nstd::optional<nstd::string> serverExtension,
V2NIMSuccessCallback<void> success,
V2NIMFailureCallback failure) = 0;
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
message |
V2NIMMessage |
是 | 被 PIN 的消息对象。如果为空或不存在则返回 191004 参数错误。 |
serverExtension |
nstd::optionalnstd::string | 否 | PIN 消息的服务端扩展字段。必须为 JSON 格式封装,长度上限为 1024 字节,多端同步。 |
success |
V2NIMSuccessCallback |
是 | 更新成功回调 |
failure |
V2NIMFailureCallback |
是 | 更新失败回调,返回 错误码。 |
TypeScriptupdatePinMessage(message: V2NIMMessage, serverExtension?: string): Promise<void>
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
message |
V2NIMMessage |
是 | 被 PIN 的消息对象。如果为空或不存在则返回 191004 参数错误。 |
serverExtension |
string | 否 | PIN 消息的服务端扩展字段。必须为 JSON 格式封装,长度上限为 1024 字节,多端同步。 |
TypeScriptupdatePinMessage(message, serverExtension): Promise<void>
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
message |
V2NIMMessage |
是 | 被 PIN 的消息对象。如果为空或不存在则返回 191004 参数错误。 |
serverExtension |
string | 否 | PIN 消息的服务端扩展字段。必须为 JSON 格式封装,长度上限为 1024 字节,多端同步。 |
TypeScriptupdatePinMessage(message: V2NIMMessage, serverExtension?: string): Promise<void>
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
message |
V2NIMMessage |
是 | 被 PIN 的消息对象。如果为空或不存在则返回 191004 参数错误。 |
serverExtension |
string | 否 | PIN 消息的服务端扩展字段。必须为 JSON 格式封装,长度上限为 1024 字节,多端同步。 |
示例代码
JavaV2NIMMessageService v2MessageService = NIMClient.getService(V2NIMMessageService.class);
// V2NIMMessage updateMessage = ; // 被更新的消息
v2MessageService.updatePinMessage(updateMessage, "xxx",
new V2NIMSuccessCallback<Void>() {
@Override
public void onSuccess(Void unused) {
}
},
new V2NIMFailureCallback() {
@Override
public void onFailure(V2NIMError error) {
}
});
Objective-C[[[NIMSDK sharedSDK] v2MessageService] updatePinMessage:message
serverExtension:@"json string"
success:^{
}
failure:^(V2NIMError * _Nonnull error) {
//error 包含错误原因
}];
C++V2NIMMessage message;
// ...
messageService.updatePinMessage(
message,
"serverExtension",
[]() {
// update pin message succeeded
},
[](V2NIMError error) {
// update pin message failed, handle error
});
TypeScripttry {
await nim.V2NIMMessageService.updatePinMessage(message, 'serverExtension')
// todo Success
} catch (err) {
// todo error
}
TypeScripttry {
await v2.messageService.updatePinMessage(message, 'serverExtension')
// todo Success
} catch (err) {
// todo error
}
TypeScripttry {
await nim.messageService.updatePinMessage(message, 'serverExtension')
// todo Success
} catch (err) {
// todo error
}
返回参数
无返回值。
Promise<void>
相关回调
- 请求成功,返回
V2NIMSuccessCallback
回调。更新 PIN 消息成功,返回onMessagePinNotification
回调。 - 请求失败,返回
V2NIMFailureCallback
回调,包含消息相关错误码。
更新 PIN 消息成功,返回 onMessagePinNotification
回调。
更新 PIN 消息成功,返回 messagePinNotification
回调。
getPinnedMessageList
接口描述
获取会话内所有 PIN 消息。获取结果不包含已删除、已撤回的消息,结果按照更新时间排序。
如果会话数据同步已开始(收到 V2NIMConversationListener.onSyncStarted
回调),建议您在数据同步完成(收到 V2NIMConversationListener.onSyncFinished
回调)后再进行该操作,否则可能查询不到完整消息数据。
参数说明
Javavoid getPinnedMessageList(String conversationId, V2NIMSuccessCallback<List<V2NIMMessagePin>> success, V2NIMFailureCallback failure);
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
conversationId |
String | 是 | 会话 ID,通过调用 V2NIMConversationIdUtil 的对应函数创建。V2NIMConversationType )| 聊天对象账号(accountId)或群组 ID。 |
success |
V2NIMSuccessCallback |
是 | 获取成功回调,返回按照更新时间排序的 V2NIMMessagePin 列表。 |
failure |
V2NIMFailureCallback |
是 | 获取失败回调,返回 错误码。 |
Objective-C- (void)getPinnedMessageList:(NSString *)conversationId
success:(nullable V2NIMGetPinListSuccess)success
failure:(nullable V2NIMFailureCallback)failure;
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
conversationId |
NSString * | 是 | 会话 ID,通过调用 V2NIMConversationIdUtil 的对应函数创建。V2NIMConversationType )| 聊天对象账号(accountId)或群组 ID。 |
success |
V2NIMGetPinListSuccess |
是 | 获取成功回调,可自定义设置。 |
failure |
V2NIMFailureCallback |
是 | 获取失败回调,返回 错误码。 |
C++virtual void getPinnedMessageList(nstd::string conversationId,
V2NIMSuccessCallback<nstd::vector<V2NIMMessagePin>> success,
V2NIMFailureCallback failure) = 0;
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
conversationId |
nstd::string | 是 | 会话 ID,通过调用 V2NIMConversationIdUtil 的对应函数创建。V2NIMConversationType )| 聊天对象账号(accountId)或群组 ID。 |
success |
V2NIMSuccessCallback |
是 | 获取成功回调,返回按照更新时间排序的 V2NIMMessagePin 列表。 |
failure |
V2NIMFailureCallback |
是 | 获取失败回调,返回 错误码。 |
TypeScriptgetPinnedMessageList(conversationId: string): Promise<V2NIMMessagePin[]>
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
conversationId |
string | 是 | 会话 ID,通过调用 V2NIMConversationIdUtil 的对应函数创建。V2NIMConversationType )| 聊天对象账号(accountId)或群组 ID。 |
TypeScriptgetPinnedMessageList(conversationId): Promise<V2NIMMessagePin[]>
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
conversationId |
string | 是 | 会话 ID,通过调用 V2NIMConversationIdUtil 的对应函数创建。V2NIMConversationType )| 聊天对象账号(accountId)或群组 ID。 |
TypeScriptgetPinnedMessageList(conversationId: string): Promise<V2NIMMessagePin[]>
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
conversationId |
string | 是 | 会话 ID,通过调用 V2NIMConversationIdUtil 的对应函数创建。V2NIMConversationType )| 聊天对象账号(accountId)或群组 ID。 |
示例代码
JavaV2NIMMessageService v2MessageService = NIMClient.getService(V2NIMMessageService.class);
V2NIMConversationType conversationType = V2NIMConversationType.V2NIM_CONVERSATION_TYPE_P2P;
String conversationId = V2NIMConversationIdUtil.conversationId("xxx", conversationType);
v2MessageService.getPinnedMessageList(conversationId,
new V2NIMSuccessCallback<List<V2NIMMessagePin>>() {
@Override
public void onSuccess(List<V2NIMMessagePin> v2NIMMessagePins) {
// success
}
},
new V2NIMFailureCallback() {
@Override
public void onFailure(V2NIMError error) {
// failed, handle error
}
});
Objective-C[[[NIMSDK sharedSDK] v2MessageService] getPinnedMessageList:@"conversationId"
success:^(NSArray<V2NIMMessagePin *> * _Nonnull result) {
// V2NIMMessagePin 数组
}
failure:^(V2NIMError * _Nonnull error) {
// error 包含错误原因
}];
C++auto conversationId = V2NIMConversationIdUtil::p2pConversationId("target_account_id");
messageService.getPinnedMessageList(
conversationId,
[](std::vector<V2NIMMessagePin> pins) {
for (auto&& pin : pins) {
// do something
}
},
[](V2NIMError error) {
// get pin message list failed, handle error
});
TypeScripttry {
const messagePinArr = await nim.V2NIMMessageService.getPinnedMessageList('me|1|another')
// todo Success
} catch (err) {
// todo error
}
TypeScripttry {
const result = await v2.messageService.getPinnedMessageList(conversationId)
// todo Success
} catch (err) {
// todo error
}
TypeScripttry {
const messagePinArr = await nim.messageService.getPinnedMessageList('me|1|another')
// todo Success
} catch (err) {
// todo error
}
返回参数
无返回值。
Promise<V2NIMMessagePin
> 按照更新时间排序的 PIN 消息列表
相关回调
- 请求成功,返回
V2NIMSuccessCallback
回调,包含按照更新时间排序的V2NIMMessagePin
列表。 - 请求失败,返回
V2NIMFailureCallback
回调,包含消息相关错误码。
- 请求成功,返回
V2NIMGetPinListSuccess
回调,可自定义设置。 - 请求失败,返回
V2NIMFailureCallback
回调,包含消息相关错误码。
无。
addQuickComment
接口描述
添加一条消息快捷评论。
本地端或多端同步添加消息快捷评论成功后,消息发送方和消息接收方均会收到消息快捷评论通知回调 onMessageQuickCommentNotification
,并同步数据库和缓存。
您可以多次调用该方法,对同一条消息添加多个快捷评论。
- 调用添加消息快捷评论接口前,请至网易云信控制台 开通消息快捷评论。
- 仅支持评论已发送成功的消息。
- 如果会话数据同步已开始(收到
V2NIMConversationListener.onSyncStarted
回调),建议您在数据同步完成(收到V2NIMConversationListener.onSyncFinished
回调)后再进行该操作。
参数说明
Javavoid addQuickComment(V2NIMMessage message, long index, String serverExtension, V2NIMMessageQuickCommentPushConfig pushConfig, V2NIMSuccessCallback<Void> success, V2NIMFailureCallback failure);
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
message |
V2NIMMessage |
是 | 被快捷评论的消息对象。如果为空或不存在则返回 191004 参数错误。 |
index |
long | 是 | 自定义快捷评论索引,必须大于 0。可在本地自定义映射关系,例如:index 展示对应的表情。 |
serverExtension |
String | 否 | 评论服务端扩展字段。必须为 JSON 格式封装,长度上限为 8 字符,多端同步。 |
pushConfig |
V2NIMMessageQuickCommentPushConfig |
否 | 快捷评论推送配置 |
success |
V2NIMSuccessCallback |
是 | 评论成功回调 |
failure |
V2NIMFailureCallback |
是 | 评论失败回调,返回 错误码。 |
Objective-C- (void)addQuickComment:(V2NIMMessage *)message
index:(NSInteger)index
serverExtension:(NSString *)serverExtension
pushConfig:(V2NIMMessageQuickCommentPushConfig *)pushConfig
success:(V2NIMSuccessCallback)success
failure:(V2NIMFailureCallback)failure;
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
message |
V2NIMMessage * |
是 | 被快捷评论的消息对象。如果为空或不存在则返回 191004 参数错误。 |
index |
NSInteger | 是 | 自定义快捷评论索引,必须大于 0。可在本地自定义映射关系,例如:index 展示对应的表情。 |
serverExtension |
NSString * | 否 | 评论服务端扩展字段。必须为 JSON 格式封装,长度上限为 8 字符,多端同步。 |
pushConfig |
V2NIMMessageQuickCommentPushConfig |
否 | 快捷评论推送配置 |
success |
V2NIMSuccessCallback |
是 | 评论成功回调 |
failure |
V2NIMFailureCallback |
是 | 评论失败回调,返回 错误码。 |
C++virtual void addQuickComment(V2NIMMessage message,
uint64_t index,
nstd::optional<nstd::string> serverExtension,
V2NIMMessageQuickCommentPushConfig pushConfig,
V2NIMSuccessCallback<void> success,
V2NIMFailureCallback failure) = 0;
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
message |
V2NIMMessage |
是 | 被快捷评论的消息对象。如果为空或不存在则返回 191004 参数错误。 |
index |
uint64_t | 是 | 自定义快捷评论索引,必须大于 0。可在本地自定义映射关系,例如:index 展示对应的表情。 |
serverExtension |
nstd::optionalnstd::string | 否 | 评论服务端扩展字段。必须为 JSON 格式封装,长度上限为 8 字符,多端同步。 |
pushConfig |
V2NIMMessageQuickCommentPushConfig |
否 | 快捷评论推送配置 |
success |
V2NIMSuccessCallback |
是 | 评论成功回调 |
failure |
V2NIMFailureCallback |
是 | 评论失败回调,返回 错误码。 |
TypeScriptaddQuickComment(message: V2NIMMessage, index: number, serverExtension?: string, pushConfig?: V2NIMMessageQuickCommentPushConfig): Promise<void>
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
message |
V2NIMMessage |
是 | 被快捷评论的消息对象。如果为空或不存在则返回 191004 参数错误。 |
index |
number | 是 | 自定义快捷评论索引,必须大于 0。可在本地自定义映射关系,例如:index 展示对应的表情。 |
serverExtension |
string | 否 | 评论服务端扩展字段。必须为 JSON 格式封装,长度上限为 8 字符,多端同步。 |
pushConfig |
V2NIMMessageQuickCommentPushConfig |
否 | 快捷评论推送配置 |
TypeScriptaddQuickComment(message, index, serverExtension, pushConfig): Promise<void>
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
message |
V2NIMMessage |
是 | 被快捷评论的消息对象。如果为空或不存在则返回 191004 参数错误。 |
index |
number | 是 | 自定义快捷评论索引,必须大于 0。可在本地自定义映射关系,例如:index 展示对应的表情。 |
serverExtension |
string | 否 | 评论服务端扩展字段。必须为 JSON 格式封装,长度上限为 8 字符,多端同步。 |
pushConfig |
V2NIMMessageQuickCommentPushConfig |
否 | 快捷评论推送配置 |
TypeScriptaddQuickComment(message: V2NIMMessage, index: number, serverExtension?: string, pushConfig?: V2NIMMessageQuickCommentPushConfig): Promise<void>
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
message |
V2NIMMessage |
是 | 被快捷评论的消息对象。如果为空或不存在则返回 191004 参数错误。 |
index |
number | 是 | 自定义快捷评论索引,必须大于 0。可在本地自定义映射关系,例如:index 展示对应的表情。 |
serverExtension |
string | 否 | 评论服务端扩展字段。必须为 JSON 格式封装,长度上限为 8 字符,多端同步。 |
pushConfig |
V2NIMMessageQuickCommentPushConfig |
否 | 快捷评论推送配置 |
示例代码
JavaV2NIMMessageService v2MessageService = NIMClient.getService(V2NIMMessageService.class);
V2NIMMessageQuickCommentPushConfig quickCommentPushConfig = V2NIMMessageQuickCommentPushConfig.V2NIMMessageQuickCommentPushConfigBuilder.builder()
// 根据实际情况设置
.withNeedBadge()
.withPushContent()
.withPushEnabled()
.withPushPayload()
.withPushTitle()
.build();
// V2NIMMessage quickCommentMessage = ; // 添加快捷评论的消息
// int quickCommentIndex = ; // 快捷评论的序号
v2MessageService.addQuickComment(quickCommentMessage, quickCommentIndex, "xxx", quickCommentPushConfig,
new V2NIMSuccessCallback<Void>() {
@Override
public void onSuccess(Void unused) {
}
},
new V2NIMFailureCallback() {
@Override
public void onFailure(V2NIMError error) {
}
});
Objective-CV2NIMMessageQuickCommentPushConfig *quickCommentPushConfig = [[V2NIMMessageQuickCommentPushConfig alloc] init];
[[[NIMSDK sharedSDK] v2MessageService] addQuickComment:message
index:1
serverExtension:@"serverExtension"
pushConfig:quickCommentPushConfig
success:^{
// success
} failure:^(V2NIMError * _Nonnull error) {
// error 包含错误原因
}];
C++V2NIMMessage message;
// ...
V2NIMMessageQuickCommentPushConfig pushConfig;
messageService.addQuickComment(
message,
1,
"serverExtension",
pushConfig,
[]() {
// add quick comment succeeded
},
[](V2NIMError error) {
// add quick comment failed, handle error
});
TypeScripttry {
await nim.V2NIMMessageService.addQuickComment(message, 1, 'serverExtension')
// todo Success
} catch (err) {
// todo error
}
TypeScripttry {
await v2.messageService.addQuickComment(message, index, 'serverExtension', pushConfig)
// todo Success
} catch (err) {
// todo error
}
TypeScripttry {
await nim.messageService.addQuickComment(message, 1, 'serverExtension')
// todo Success
} catch (err) {
// todo error
}
返回参数
无返回值。
Promise<void>
相关回调
- 请求成功,返回
V2NIMSuccessCallback
回调。评论成功,返回onMessageQuickCommentNotification
回调。 - 请求失败,返回
V2NIMFailureCallback
回调,包含消息相关错误码。
评论成功,返回 onMessageQuickCommentNotification
回调。
评论成功,返回 messageQuickCommentNotification
回调。
removeQuickComment
接口描述
移除指定消息的快捷评论。
本地端或多端同步移除快捷评论成功后,消息发送方和消息接收方均会收到消息快捷评论通知回调 onMessageQuickCommentNotification
,并同步数据库和缓存。
如果会话数据同步已开始(收到 V2NIMConversationListener.onSyncStarted
回调),建议您在数据同步完成(收到 V2NIMConversationListener.onSyncFinished
回调)后再进行该操作。
参数说明
Javavoid removeQuickComment(V2NIMMessageRefer messageRefer, long index, String serverExtension, V2NIMSuccessCallback<Void> success, V2NIMFailureCallback failure);
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
messageRefer |
V2NIMMessageRefer |
是 | 被快捷评论的消息参考信息。如果为空或不存在则返回 191004 参数错误。 |
index |
long | 是 | 快捷评论索引,必须大于 0。 |
serverExtension |
String | 否 | 服务端扩展字段。长度上限为 8 字符,多端同步。 |
success |
V2NIMSuccessCallback |
是 | 移除评论成功回调 |
failure |
V2NIMFailureCallback |
是 | 移除评论失败回调,返回 错误码。 |
Objective-C- (void)removeQuickComment:(V2NIMMessageRefer *)messageRefer
index:(NSInteger)index
serverExtension:(NSString *)serverExtension
success:(V2NIMSuccessCallback)success
failure:(V2NIMFailureCallback)failure;
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
messageRefer |
V2NIMMessageRefer * |
是 | 被快捷评论的消息参考信息。如果为空或不存在则返回 191004 参数错误。 |
index |
NSInteger | 是 | 快捷评论索引,必须大于 0。 |
serverExtension |
NSString * | 否 | 服务端扩展字段。长度上限为 8 字符,多端同步。 |
success |
V2NIMSuccessCallback |
是 | 移除评论成功回调 |
failure |
V2NIMFailureCallback |
是 | 移除评论失败回调,返回 错误码。 |
C++virtual void removeQuickComment(V2NIMMessageRefer messageRefer,
uint32_t index,
nstd::optional<nstd::string> serverExtension,
V2NIMSuccessCallback<void> success,
V2NIMFailureCallback failure) = 0;
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
messageRefer |
V2NIMMessageRefer |
是 | 被快捷评论的消息参考信息。如果为空或不存在则返回 191004 参数错误。 |
index |
uint32_t | 是 | 快捷评论索引,必须大于 0。 |
serverExtension |
nstd::optionalnstd::string | 否 | 服务端扩展字段。长度上限为 8 字符,多端同步。 |
success |
V2NIMSuccessCallback |
是 | 移除评论成功回调 |
failure |
V2NIMFailureCallback |
是 | 移除评论失败回调,返回 错误码。 |
TypeScriptremoveQuickComment(messageRefer: V2NIMMessageRefer, index: number, serverExtension?: string): Promise<void>
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
messageRefer |
V2NIMMessageRefer |
是 | 被快捷评论的消息参考信息。如果为空或不存在则返回 191004 参数错误。 |
index |
number | 是 | 快捷评论索引,必须大于 0。 |
serverExtension |
string | 否 | 服务端扩展字段。长度上限为 8 字符,多端同步。 |
TypeScriptremoveQuickComment(messageRefer, index, serverExtension): Promise<void>
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
messageRefer |
V2NIMMessageRefer |
是 | 被快捷评论的消息参考信息。如果为空或不存在则返回 191004 参数错误。 |
index |
number | 是 | 快捷评论索引,必须大于 0。 |
serverExtension |
string | 否 | 服务端扩展字段。长度上限为 8 字符,多端同步。 |
TypeScriptremoveQuickComment(messageRefer: V2NIMMessageRefer, index: number, serverExtension?: string): Promise<void>
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
messageRefer |
V2NIMMessageRefer |
是 | 被快捷评论的消息参考信息。如果为空或不存在则返回 191004 参数错误。 |
index |
number | 是 | 快捷评论索引,必须大于 0。 |
serverExtension |
string | 否 | 服务端扩展字段。长度上限为 8 字符,多端同步。 |
示例代码
JavaV2NIMMessageService v2MessageService = NIMClient.getService(V2NIMMessageService.class);
// V2NIMMessageRefer quickCommentMessageRefer // 移除快捷评论的消息引用
// int quickCommentIndex // 快捷评论的序号
v2MessageService.removeQuickComment(quickCommentMessageRefer, quickCommentIndex, "xxx",
new V2NIMSuccessCallback<Void>() {
@Override
public void onSuccess(Void unused) {
// success
}
},
new V2NIMFailureCallback() {
@Override
public void onFailure(V2NIMError error) {
// failed, handle error
}
});
Objective-CV2NIMMessageRefer *refer = [[V2NIMMessageRefer alloc] init];
[[[NIMSDK sharedSDK] v2MessageService] removeQuickComment:refer index:1 serverExtension:@"serverExtension" success:^{
} failure:^(V2NIMError * _Nonnull error) {
// error 包含错误原因
}];
C++V2NIMMessageRefer messageRefer;
// ...
messageService.removeQuickComment(
messageRefer,
1,
"serverExtension",
[]() {
// remove quick comment succeeded
},
[](V2NIMError error) {
// remove quick comment failed, handle error
});
TypeScripttry {
await nim.V2NIMMessageService.removeQuickComment(messageRefer, 1, 'serverExtension')
// todo Success
} catch (err) {
// todo error
}
TypeScripttry {
await v2.messageService.removeQuickComment(messageRefer, index, 'serverExtension')
// todo Success
} catch (err) {
// todo error
}
TypeScripttry {
await nim.messageService.removeQuickComment(messageRefer, 1, 'serverExtension')
// todo Success
} catch (err) {
// todo error
}
返回参数
无返回值。
Promise<void>
相关回调
- 请求成功,返回
V2NIMSuccessCallback
回调。移除成功,返回onMessageQuickCommentNotification
回调。 - 请求失败,返回
V2NIMFailureCallback
回调,包含消息相关错误码。
移除成功,返回 onMessageQuickCommentNotification
回调。
移除成功,返回 messageQuickCommentNotification
回调。
getQuickCommentList
接口描述
获取指定消息的所有快捷评论。获取结果不包含已删除消息的快捷评论,按照评论时间排序。
如果会话数据同步已开始(收到 V2NIMConversationListener.onSyncStarted
回调),建议您在数据同步完成(收到 V2NIMConversationListener.onSyncFinished
回调)后再进行该操作,否则可能查询不到完整消息数据。
参数说明
Javavoid getQuickCommentList(List<V2NIMMessage> messages, V2NIMSuccessCallback<Map<String, List<V2NIMMessageQuickComment>>> success, V2NIMFailureCallback failure);
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
messages |
List<V2NIMMessage > |
是 | 被快捷评论的消息列表。如果为空或不存在则返回 191004 参数错误。 |
success |
V2NIMSuccessCallback |
是 | 获取成功回调,返回按照评论时间排序的 V2NIMMessageQuickComment 列表。 |
failure |
V2NIMFailureCallback |
是 | 获取失败回调,返回 错误码。 |
Objective-C- (void)getQuickCommentList:(NSArray <V2NIMMessage *> *)messages
success:(V2NIMGetQuickCommentListSuccess)success
failure:(V2NIMFailureCallback)failure;
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
messages |
NSArray <V2NIMMessage *> * |
是 | 被快捷评论的消息列表。如果为空或不存在则返回 191004 参数错误。 |
success |
V2NIMGetQuickCommentListSuccess |
是 | 获取成功回调,可自定义设置。 |
failure |
V2NIMFailureCallback |
是 | 获取失败回调,返回 错误码。 |
C++virtual void getQuickCommentList(std::vector<V2NIMMessage> messages,
V2NIMSuccessCallback<std::map<std::string, std::vector<V2NIMMessageQuickComment>>> success,
V2NIMFailureCallback failure) = 0;
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
messages |
std::vector<V2NIMMessage > |
是 | 被快捷评论的消息列表。如果为空或不存在则返回 191004 参数错误。 |
success |
V2NIMSuccessCallback |
是 | 获取成功回调,返回按照评论时间排序的 V2NIMMessageQuickComment 列表。 |
failure |
V2NIMFailureCallback |
是 | 获取失败回调,返回 错误码。 |
TypeScriptgetQuickCommentList(messages: V2NIMMessage[]): Promise<{ [messageClientId: string]: V2NIMMessageQuickComment[] }>
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
messages |
V2NIMMessage [] |
是 | 被快捷评论的消息对象。如果为空或不存在则返回 191004 参数错误。 |
TypeScriptgetQuickCommentList(messages): Promise<Map<string, V2NIMMessageQuickComment[]>>
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
messages |
V2NIMMessage [] |
是 | 被快捷评论的消息对象。如果为空或不存在则返回 191004 参数错误。 |
TypeScriptgetQuickCommentList(message: V2NIMMessage[]): Promise<Map<string, V2NIMMessageQuickComment[]>>
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
messages |
V2NIMMessage [] |
是 | 被快捷评论的消息对象。如果为空或不存在则返回 191004 参数错误。 |
示例代码
JavaV2NIMMessageService v2MessageService = NIMClient.getService(V2NIMMessageService.class);
// List<V2NIMMessage> messages // 需要查询快捷评论的消息列表
v2MessageService.getQuickCommentList(messages,
new V2NIMSuccessCallback<Map<String, List<V2NIMMessageQuickComment>>>() {
@Override
public void onSuccess(Map<String, List<V2NIMMessageQuickComment>> stringListMap) {
}
},
new V2NIMFailureCallback() {
@Override
public void onFailure(V2NIMError error) {
}
});
Objective-C[[[NIMSDK sharedSDK] v2MessageService] getQuickCommentList:@[message1, message2]
success:^(NSDictionary<NSString *,NSArray<V2NIMMessageQuickComment *> *> * _Nonnull result) {
// 返回 Dictionary 被快捷评论的消息
}
failure:^(V2NIMError * _Nonnull error) {
// error 包含错误原因
}];
C++nstd::vector<V2NIMMessage> messages
// ...
messageService.getQuickCommentList(
messages,
[](nstd::map<nstd::string, nstd::vector<V2NIMMessageQuickComment>> quiments) {
for (auto&& quickComment : quickComments) {
// do something
}
},
[](V2NIMError error) {
// get quick comment list failed, handle error
});
TypeScripttry {
const quickCommentList = await nim.V2NIMMessageService.getQuickCommentList(messages)
// todo Success
} catch (err) {
// todo error
}
TypeScripttry {
const result = await v2.messageService.getQuickCommentList(messages)
// todo Success
} catch (err) {
// todo error
}
TypeScripttry {
const quickCommentList = await nim.messageService.getQuickCommentList(messages)
// todo Success
} catch (err) {
// todo error
}
返回参数
无返回值。
Promise<V2NIMMessageQuickComment
> 按照评论时间排序的快捷评论列表
相关回调
- 请求成功,返回
V2NIMSuccessCallback
回调,包含按照评论时间排序的V2NIMMessageQuickComment
列表。 - 请求失败,返回
V2NIMFailureCallback
回调,包含消息相关错误码。
- 请求成功,返回
V2NIMGetQuickCommentListSuccess
回调,可自定义设置。 - 请求失败,返回
V2NIMFailureCallback
回调,包含消息相关错误码。
无。
addCollection
接口描述
添加一条收藏。支持收藏消息或其他自定义内容。
- 如果收藏消息,仅支持收藏已发送成功的消息。
- 如果会话数据同步已开始(收到
V2NIMConversationListener.onSyncStarted
回调),建议您在数据同步完成(收到V2NIMConversationListener.onSyncFinished
回调)后再进行该操作。
参数说明
Javavoid addCollection(V2NIMAddCollectionParams params, V2NIMSuccessCallback<V2NIMCollection> success, V2NIMFailureCallback failure);
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
params |
V2NIMAddCollectionParams |
是 | 收藏配置参数 |
success |
V2NIMSuccessCallback |
是 | 收藏成功回调,返回收藏对象 V2NIMCollection 。 |
failure |
V2NIMFailureCallback |
是 | 收藏失败回调,返回 错误码。 |
Objective-C- (void)addCollection:(V2NIMAddCollectionParams *)params
success:(V2NIMCollectionSuccess)success
failure:(V2NIMFailureCallback)failure;
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
params |
V2NIMAddCollectionParams |
是 | 收藏配置参数 |
success |
V2NIMCollectionSuccess |
是 | 收藏成功回调,可自定义设置。 |
failure |
V2NIMFailureCallback |
是 | 收藏失败回调,返回 错误码。 |
C++virtual void addCollection(V2NIMAddCollectionParams params, V2NIMSuccessCallback<V2NIMCollection> success, V2NIMFailureCallback failure) = 0;
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
params |
V2NIMAddCollectionParams |
是 | 收藏配置参数 |
success |
V2NIMSuccessCallback |
是 | 收藏成功回调,返回收藏对象 V2NIMCollection 。 |
failure |
V2NIMFailureCallback |
是 | 收藏失败回调,返回 错误码。 |
TypeScriptaddCollection(params: V2NIMAddCollectionParams): Promise<V2NIMCollection>
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
params |
V2NIMAddCollectionParams |
是 | 收藏配置参数 |
TypeScriptaddCollection(params): Promise<V2NIMCollection>
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
params |
V2NIMAddCollectionParams |
是 | 收藏配置参数 |
TypeScriptaddCollection(params: V2NIMAddCollectionParams): Promise<V2NIMCollection>
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
params |
V2NIMAddCollectionParams |
是 | 收藏配置参数 |
示例代码
JavaV2NIMMessageService v2MessageService = NIMClient.getService(V2NIMMessageService.class);
// int collectionType = ;
// String collectionData = ;
V2NIMAddCollectionParams addCollectionParams = V2NIMAddCollectionParams.V2NIMAddCollectionParamsBuilder
// 必填
.builder(collectionType, collectionData)
// 根据实际情况配置
.withServerExtension()
.build();
v2MessageService.addCollection(addCollectionParams,
new V2NIMSuccessCallback<V2NIMCollection>() {
@Override
public void onSuccess(V2NIMCollection v2NIMCollection) {
// success
}
},
new V2NIMFailureCallback() {
@Override
public void onFailure(V2NIMError error) {
// failed, handle error
}
});
Objective-CV2NIMAddCollectionParams *addCollectionParams = [[V2NIMAddCollectionParams alloc] init];
[[[NIMSDK sharedSDK] v2MessageService] addCollection:addCollectionParams
success:^(V2NIMCollection * _Nonnull result) {
// V2NIMCollection
}
failure:^(V2NIMError * _Nonnull error) {
// error 包含错误原因
}];
C++V2NIMAddCollectionParams params;
params.collectionClientId = "id1";
params.collectionType = 1;
params.collectionData = "data";
params.serverExtension = "serverExtension";
messageService.addCollection(
params,
[](V2NIMCollection collection) {
// add collection succeeded
},
[](V2NIMError error) {
// add collection failed, handle error
});
TypeScripttry {
const res: V2NIMCollection = await nim.V2NIMMessageService.addCollection({
collectionType: 1,
collectionData: 'data',
serverExtension: 'serverExtension'
})
// todo Success
} catch (err) {
// todo error
}
TypeScripttry {
const result = await v2.messageService.addCollection(params)
// todo Success
} catch (err) {
// todo error
}
TypeScripttry {
const res: V2NIMCollection = await nim.messageService.addCollection({
collectionType: 1,
collectionData: 'data',
serverExtension: 'serverExtension'
})
// todo Success
} catch (err) {
// todo error
}
返回参数
无返回值。
Promise<V2NIMCollection
>
相关回调
- 请求成功,返回
V2NIMSuccessCallback
回调,包含收藏对象V2NIMCollection
。 - 请求失败,返回
V2NIMFailureCallback
回调,包含消息相关错误码。
无。
removeCollections
接口描述
批量移除收藏列表。
如果会话数据同步已开始(收到 V2NIMConversationListener.onSyncStarted
回调),建议您在数据同步完成(收到 V2NIMConversationListener.onSyncFinished
回调)后再进行该操作。
参数说明
Javavoid removeCollections(List<V2NIMCollection> collections, V2NIMSuccessCallback<Void> success, V2NIMFailureCallback failure);
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
collections |
List<V2NIMCollection > |
是 | 收藏对象列表。不可为空,否则返回 191004 参数错误。 |
success |
V2NIMSuccessCallback |
是 | 移除成功回调 |
failure |
V2NIMFailureCallback |
是 | 移除失败回调,返回 错误码。 |
Objective-C- (void)removeCollections:(NSArray<V2NIMCollection *> *)collections
success:(V2NIMRemoveCollectionSuccess)success
failure:(V2NIMFailureCallback)failure;
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
collections |
NSArray<V2NIMCollection *> * |
是 | 收藏对象列表。不可为空,否则返回 191004 参数错误。 |
success |
V2NIMRemoveCollectionSuccess |
是 | 移除成功回调,可自定义设置。 |
failure |
V2NIMFailureCallback |
是 | 移除失败回调,返回 错误码。 |
C++virtual void removeCollections(nstd::vector<V2NIMCollection> collections, V2NIMSuccessCallback<void> success, V2NIMFailureCallback failure) = 0;
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
collections |
nstd::vector<V2NIMCollection > |
是 | 收藏对象列表。不可为空,否则返回 191004 参数错误。 |
success |
V2NIMSuccessCallback |
是 | 移除成功回调 |
failure |
V2NIMFailureCallback |
是 | 移除失败回调,返回 错误码。 |
TypeScriptremoveCollections(collections: V2NIMCollection[]): Promise<number>
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
collections |
V2NIMCollection [] |
是 | 收藏对象列表。不可为空,否则返回 191004 参数错误。 |
TypeScriptremoveCollections(collections): Promise<number>
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
collections |
V2NIMCollection [] |
是 | 收藏对象列表。不可为空,否则返回 191004 参数错误。 |
TypeScriptremoveCollections(collections: V2NIMCollection[]): Promise<number>
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
collections |
V2NIMCollection [] |
是 | 收藏对象列表。不可为空,否则返回 191004 参数错误。 |
示例代码
JavaV2NIMMessageService v2MessageService = NIMClient.getService(V2NIMMessageService.class);
// List<V2NIMCollection> collections = ; // 需要移除的相关收藏
v2MessageService.removeCollections(collections,
new V2NIMSuccessCallback<Void>() {
@Override
public void onSuccess(Void unused) {
}
},
new V2NIMFailureCallback() {
@Override
public void onFailure(V2NIMError error) {
}
});
Objective-CV2NIMCollection *collection = [[V2NIMCollection alloc] init];
[[[NIMSDK sharedSDK] v2MessageService] removeCollections:@[collection]
success:^(int count) {
// count
}
failure:^(V2NIMError * _Nonnull error) {
// error 包含错误原因
}];
C++nstd::vector<V2NIMCollection> collections;
// ...
messageService.removeCollections(
collections,
[]() {
// remove collection succeeded
},
[](V2NIMError error) {
// remove collection failed, handle error
});
TypeScripttry {
const res: number = await nim.V2NIMMessageService.removeCollections(collections)
// todo Success
} catch (err) {
// todo error
}
TypeScripttry {
const count = await v2.messageService.removeCollections(collections)
// todo Success
} catch (err) {
// todo error
}
TypeScripttry {
const res: number = await nim.messageService.removeCollections(collections)
// todo Success
} catch (err) {
// todo error
}
返回参数
无返回值。
Promise<void>
相关回调
- 请求成功,返回
V2NIMSuccessCallback
回调。 - 请求失败,返回
V2NIMFailureCallback
回调,包含消息相关错误码。
- 请求成功,返回
V2NIMRemoveCollectionSuccess
回调,可自定义设置。 - 请求失败,返回
V2NIMFailureCallback
回调,包含消息相关错误码。
无。
updateCollectionExtension
接口描述
更新指定收藏的服务端扩展字段。
参数说明
Javavoid updateCollectionExtension (V2NIMCollection collection, String serverExtension, V2NIMSuccessCallback<V2NIMCollection> success, V2NIMFailureCallback failure);
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
collection |
V2NIMCollection |
是 | 收藏对象。如果为空或不存在则返回 191004 参数错误。 |
serverExtension |
String | 否 | 收藏的服务端扩展字段。必须为 JSON 格式封装,如果设置为空则表示取消现有的扩展字段。 |
success |
V2NIMSuccessCallback |
是 | 更新成功回调,返回更新后的 V2NIMCollection 。 |
failure |
V2NIMFailureCallback |
是 | 更新失败回调,返回 错误码。 |
Objective-C- (void)updateCollectionExtension:(V2NIMCollection *)collection
serverExtension:(NSString *)serverExtension
success:(V2NIMCollectionSuccess)success
failure:(V2NIMFailureCallback)failure;
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
collection |
V2NIMCollection |
是 | 收藏对象。如果为空或不存在则返回 191004 参数错误。 |
serverExtension |
NSString * | 否 | 收藏的服务端扩展字段。必须为 JSON 格式封装,如果设置为空则表示取消现有的扩展字段。 |
success |
V2NIMCollectionSuccess |
是 | 更新成功回调,可自定义设置。 |
failure |
V2NIMFailureCallback |
是 | 更新失败回调,返回 错误码。 |
C++virtual void updateCollectionExtension(V2NIMCollection collection,
nstd::optional<nstd::string> serverExtension,
V2NIMSuccessCallback<V2NIMCollection> success,
V2NIMFailureCallback failure) = 0;
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
collection |
V2NIMCollection |
是 | 收藏对象。如果为空或不存在则返回 191004 参数错误。 |
serverExtension |
nstd::optional<\nstd::string> | 否 | 收藏的服务端扩展字段。必须为 JSON 格式封装,如果设置为空则表示取消现有的扩展字段。 |
success |
V2NIMSuccessCallback |
是 | 更新成功回调,返回更新后的 V2NIMCollection 。 |
failure |
V2NIMFailureCallback |
是 | 更新失败回调,返回 错误码。 |
TypeScriptupdateCollectionExtension(collection: V2NIMCollection, serverExtension?: string): Promise<V2NIMCollection>
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
collection |
V2NIMCollection |
是 | 收藏对象。如果为空或不存在则返回 191004 参数错误。 |
serverExtension |
string | 否 | 收藏的服务端扩展字段。必须为 JSON 格式封装,如果设置为空则表示取消现有的扩展字段。 |
TypeScriptupdateCollectionExtension(collection, serverExtension): Promise<V2NIMCollection>
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
collection |
V2NIMCollection |
是 | 收藏对象。如果为空或不存在则返回 191004 参数错误。 |
serverExtension |
string | 否 | 收藏的服务端扩展字段。必须为 JSON 格式封装,如果设置为空则表示取消现有的扩展字段。 |
TypeScriptupdateCollectionExtension(collection: V2NIMCollection, serverExtension?: string): Promise<V2NIMCollection>
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
collection |
V2NIMCollection |
是 | 收藏对象。如果为空或不存在则返回 191004 参数错误。 |
serverExtension |
string | 否 | 收藏的服务端扩展字段。必须为 JSON 格式封装,如果设置为空则表示取消现有的扩展字段。 |
示例代码
JavaV2NIMMessageService v2MessageService = NIMClient.getService(V2NIMMessageService.class);
//V2NIMCollection collection = ; // 需要更新的收藏信息
v2MessageService.updateCollectionExtension(collection, "xxx",
new V2NIMSuccessCallback<V2NIMCollection>() {
@Override
public void onSuccess(V2NIMCollection v2NIMCollection) {
// success
}
},
new V2NIMFailureCallback() {
@Override
public void onFailure(V2NIMError error) {
// failed, handle error
}
});
Objective-C[[[NIMSDK sharedSDK] v2MessageService] updateCollectionExtension:collection
serverExtension:@"serverExtension"
success:^(V2NIMCollection * _Nonnull result) {
// result 更新后的 collection
}
failure:^(V2NIMError * _Nonnull error) {
// error 包含错误原因
}];
C++V2NIMCollection collection
// ...
messageService.updateCollectionExtension(
collection,
"serverExtension",
[](V2NIMCollection collection) {
// update collection succeeded
},
[](V2NIMError error) {
// update collection failed, handle error
});
TypeScripttry {
const collection: V2NIMCollection = await nim.V2NIMMessageService.updateCollectionExtension(collection, 'newExtension')
// todo Success
} catch (err) {
// todo error
}
TypeScripttry {
const result = await v2.messageService.updateCollectionExtension(collection, 'serverExtension')
// todo Success
} catch (err) {
// todo error
}
TypeScripttry {
const collection: V2NIMCollection = await nim.messageService.updateCollectionExtension(collection, 'newExtension')
// todo Success
} catch (err) {
// todo error
}
返回参数
无返回值。
Promise<V2NIMCollection
> 更新后的收藏对象
相关回调
- 请求成功,返回
V2NIMSuccessCallback
回调,包含更新后的V2NIMCollection
。 - 请求失败,返回
V2NIMFailureCallback
回调,包含会话相关错误码。
- 请求成功,返回
V2NIMCollectionSuccess
回调,可自定义设置。 - 请求失败,返回
V2NIMFailureCallback
回调,包含消息相关错误码。
无。
getCollectionListByOption
接口描述
按照查询条件分页获取收藏列表,结果按照收藏时间排序。
如果会话数据同步已开始(收到 V2NIMConversationListener.onSyncStarted
回调),建议您在数据同步完成(收到 V2NIMConversationListener.onSyncFinished
回调)后再进行该操作,否则可能查询不到完整消息数据。
参数说明
Javavoid getCollectionListByOption (V2NIMCollectionOption option, V2NIMSuccessCallback<List<V2NIMCollection>> success, V2NIMFailureCallback failure);
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
option |
V2NIMCollectionOption |
是 | 收藏查询选项 |
success |
V2NIMSuccessCallback |
是 | 获取成功回调,返回按照收藏时间排序的 V2NIMCollection 列表。 |
failure |
V2NIMFailureCallback |
是 | 获取失败回调,返回 错误码。 |
Objective-C- (void)getCollectionListByOption:(V2NIMCollectionOption *)option
success:(V2NIMGetCollectionListSuccess)success
failure:(V2NIMFailureCallback)failure;
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
option |
V2NIMCollectionOption |
是 | 收藏查询选项 |
success |
V2NIMGetCollectionListSuccess |
是 | 获取成功回调,可自定义设置。 |
failure |
V2NIMFailureCallback |
是 | 获取失败回调,返回 错误码。 |
C++virtual void getCollectionListByOption(V2NIMCollectionOption option,
V2NIMSuccessCallback<nstd::vector<V2NIMCollection>> success,
V2NIMFailureCallback failure) = 0;
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
option |
V2NIMCollectionOption |
是 | 收藏查询选项 |
success |
V2NIMSuccessCallback |
是 | 获取成功回调,返回按照收藏时间排序的 V2NIMCollection 列表。 |
failure |
V2NIMFailureCallback |
是 | 获取失败回调,返回 错误码。 |
TypeScriptgetCollectionListByOption(option: V2NIMCollectionOption): Promise<V2NIMCollection[]>
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
option |
V2NIMCollectionOption |
是 | 收藏查询选项 |
TypeScriptgetCollectionListByOption(option): Promise<V2NIMCollection[]>
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
option |
V2NIMCollectionOption |
是 | 收藏查询选项 |
TypeScriptgetCollectionListByOption(option: V2NIMCollectionOption): Promise<V2NIMCollection[]>
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
option |
V2NIMCollectionOption |
是 | 收藏查询选项 |
示例代码
JavaV2NIMMessageService v2MessageService = NIMClient.getService(V2NIMMessageService.class);
// 根据实际情况配置
V2NIMCollectionOption option = V2NIMCollectionOption.V2NIMCollectionOptionBuilder.builder()
.withAnchorCollection()
.withBeginTime()
.withCollectionType()
.withDirection()
.withEndTime()
.withLimit()
.build();
v2MessageService.getCollectionListByOption(option,
new V2NIMSuccessCallback<List<V2NIMCollection>>() {
@Override
public void onSuccess(List<V2NIMCollection> v2NIMCollections) {
// success
}
},
new V2NIMFailureCallback() {
@Override
public void onFailure(V2NIMError error) {
// failed, handle error
}
});
Objective-CV2NIMCollectionOption *collectionOption = [[V2NIMCollectionOption alloc] init];
[[[NIMSDK sharedSDK] v2MessageService] getCollectionListByOption:collectionOption
success:^(NSArray<V2NIMCollection *> * _Nonnull result) {
// result V2NIMCollection 数组
}
failure:^(V2NIMError * _Nonnull error) {
// error 包含错误原因
}];
C++V2NIMCollectionOption option;
option.collectionType = 1;
option.limit = 10;
messageService.getCollectionListByOption(
option,
[](nstd::vector<V2NIMCollection> collections) {
for (auto&& collection : collections) {
// do something
}
},
[](V2NIMError error) {
// get collection list failed, handle error
});
TypeScripttry {
const res: V2NIMCollection[] = await nim.V2NIMMessageService.getCollectionListByOption({
beginTime: 0,
endTime: 0,
direction: 0,
limit: 100,
collectionType: 0
})
// todo Success
} catch (err) {
// todo error
}
TypeScripttry {
const result = await v2.messageService.getCollectionListByOption(option)
// todo Success
} catch (err) {
// todo error
}
TypeScripttry {
const res: V2NIMCollection[] = await nim.messageService.getCollectionListByOption({
beginTime: 0,
endTime: 0,
direction: 0,
limit: 100,
collectionType: 0
})
// todo Success
} catch (err) {
// todo error
}
返回参数
无返回值。
Promise<V2NIMCollection
> 按照收藏时间排序的收藏列表
相关回调
- 请求成功,返回
V2NIMSuccessCallback
回调,包含按照收藏时间排序的V2NIMCollection
列表。 - 请求失败,返回
V2NIMFailureCallback
回调,包含消息相关错误码。
- 请求成功,返回
V2NIMGetCollectionListSuccess
回调,可自定义设置。 - 请求失败,返回
V2NIMFailureCallback
回调,包含消息相关错误码。
无。
sendP2PMessageReceipt
接口描述
发送单聊消息已读回执。
当消息接收方收到 onReceiveMessages
回调后,可以调用该方法向消息发送方发送已读回执。单聊消息已读回执功能具体实现步骤请参考 消息已读回执。
本端发送已读回执成功后,其他登录客户端和消息发送方均会收到单聊已读回执回调 onReceiveP2PMessageReadReceipts
。
参数说明
Javavoid sendP2PMessageReceipt(V2NIMMessage message, V2NIMSuccessCallback<Void> success, V2NIMFailureCallback failure);
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
message |
V2NIMMessage |
是 | 需要发送已读回执的消息对象。如果为空或不存在则返回 191004 参数错误。 |
success |
V2NIMSuccessCallback |
是 | 已读回执发送成功回调 |
failure |
V2NIMFailureCallback |
是 | 已读回执发送失败回调,返回 错误码。 |
Objective-C- (void)sendP2PMessageReceipt:(V2NIMMessage*)messages
success:(nullable V2NIMSuccessCallback)success
failure:(nullable V2NIMFailureCallback)failure;
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
message |
V2NIMMessage |
是 | 需要发送已读回执的消息对象。如果为空或不存在则返回 191004 参数错误。 |
success |
V2NIMSuccessCallback |
是 | 已读回执发送成功回调 |
failure |
V2NIMFailureCallback |
是 | 已读回执发送失败回调,返回 错误码。 |
C++ virtual void sendP2PMessageReceipt(V2NIMMessage message, V2NIMSuccessCallback<void> success, V2NIMFailureCallback failure) = 0;
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
message |
V2NIMMessage |
是 | 需要发送已读回执的消息对象。如果为空或不存在则返回 191004 参数错误。 |
success |
V2NIMSuccessCallback |
是 | 已读回执发送成功回调 |
failure |
V2NIMFailureCallback |
是 | 已读回执发送失败回调,返回 错误码。 |
TypeScriptsendP2PMessageReceipt(message: V2NIMMessage): Promise<void>
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
message |
V2NIMMessage |
是 | 需要发送已读回执的消息对象。如果为空或不存在则返回 191004 参数错误。 |
TypeScriptsendP2PMessageReceipt(message): Promise<void>
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
message |
V2NIMMessage |
是 | 需要发送已读回执的消息对象。如果为空或不存在则返回 191004 参数错误。 |
TypeScriptsendP2PMessageReceipt(message: V2NIMMessage): Promise<void>
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
message |
V2NIMMessage |
是 | 需要发送已读回执的消息对象。如果为空或不存在则返回 191004 参数错误。 |
示例代码
JavaV2NIMMessageService v2MessageService = NIMClient.getService(V2NIMMessageService.class);
// V2NIMMessage v2Message
v2MessageService.sendP2PMessageReceipt(v2Message,
new V2NIMSuccessCallback<Void>() {
@Override
public void onSuccess(Void unused) {
}
},
new V2NIMFailureCallback() {
@Override
public void onFailure(V2NIMError error) {
}
});
Objective-C[[[NIMSDK sharedSDK] v2MessageService] sendP2PMessageReceipt:message
success:^{
//发送成功
}
failure:^(V2NIMError * _Nonnull error) {
//error 包含错误原因
}];
C++V2NIMMessage message;
//...
messageService.sendP2PMessageReceipt(
message,
[]() {
// send p2p message receipt succeeded
},
[](V2NIMError error) {
// send p2p message receipt failed, handle error
}
);
TypeScripttry {
await nim.V2NIMMessageService.sendP2PMessageReceipt(message)
// todo Success
} catch (err) {
// todo error
}
TypeScripttry {
await v2.messageService.sendP2PMessageReceipt(message)
// todo Success
} catch (err) {
// todo error
}
TypeScripttry {
await nim.messageService.sendP2PMessageReceipt(message)
// todo Success
} catch (err) {
// todo error
}
返回参数
无返回值。
Promise<void>
相关回调
- 请求成功,返回
V2NIMSuccessCallback
回调。发送已读回执成功,返回onReceiveP2PMessageReadReceipts
回调。 - 请求失败,返回
V2NIMFailureCallback
回调,包含消息相关错误码。
- 请求成功,返回
V2NIMConversationCallback
回调,可自定义设置。 - 请求失败,返回
V2NIMFailureCallback
回调,包含消息相关错误码。
发送已读回执成功,返回 onReceiveP2PMessageReadReceipts
回调。
发送已读回执成功,返回 receiveP2PMessageReadReceipts
回调。
getP2PMessageReceipt
接口描述
获取单聊消息已读回执。获取结果不包含已删除、已撤回消息的已读回执。
如果会话数据同步已开始(收到 V2NIMConversationListener.onSyncStarted
回调),建议您在数据同步完成(收到 V2NIMConversationListener.onSyncFinished
回调)后再进行该操作,否则可能查询不到完整数据。
参数说明
Javavoid getP2PMessageReceipt(String conversationId, V2NIMSuccessCallback<V2NIMP2PMessageReadReceipt> success, V2NIMFailureCallback failure);
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
conversationId |
String | 是 | 会话 ID,通过调用 V2NIMConversationIdUtil 的对应函数创建。V2NIMConversationType )| 聊天对象账号(accountId)或群组 ID。 |
success |
V2NIMSuccessCallback |
是 | 获取成功回调,返回 V2NIMP2PMessageReadReceipt 。 |
failure |
V2NIMFailureCallback |
是 | 获取失败回调,返回 错误码。 |
Objective-C- (void)getP2PMessageReceipt:(NSString*)conversationId
success:(nullable V2NIMP2PReadReceiptSuccess)success
failure:(nullable V2NIMFailureCallback)failure;
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
conversationId |
NSString* | 是 | 会话 ID,通过调用 V2NIMConversationIdUtil 的对应函数创建。V2NIMConversationType )| 聊天对象账号(accountId)或群组 ID。 |
success |
V2NIMSuccessCallback |
是 | 获取成功回调,返回 V2NIMP2PMessageReadReceipt 。 |
failure |
V2NIMFailureCallback |
是 | 获取失败回调,返回 错误码。 |
C++virtual void getP2PMessageReceipt(nstd::string conversationId,
V2NIMSuccessCallback<V2NIMP2PMessageReadReceipt> success,
V2NIMFailureCallback failure) = 0;
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
conversationId |
nstd::string | 是 | 会话 ID,通过调用 V2NIMConversationIdUtil 的对应函数创建。V2NIMConversationType )| 聊天对象账号(accountId)或群组 ID。 |
success |
V2NIMSuccessCallback |
是 | 获取成功回调,返回 V2NIMP2PMessageReadReceipt 。 |
failure |
V2NIMFailureCallback |
是 | 获取失败回调,返回 错误码。 |
TypeScriptgetP2PMessageReceipt(conversationId: string): Promise<V2NIMP2PMessageReadReceipt>
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
conversationId |
string | 是 | 会话 ID,通过调用 V2NIMConversationIdUtil 的对应函数创建。V2NIMConversationType )| 聊天对象账号(accountId)或群组 ID。 |
TypeScriptgetP2PMessageReceipt(conversationId): Promise<V2NIMP2PMessageReadReceipt>
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
conversationId |
string | 是 | 会话 ID,通过调用 V2NIMConversationIdUtil 的对应函数创建。V2NIMConversationType )| 聊天对象账号(accountId)或群组 ID。 |
TypeScriptgetP2PMessageReceipt(conversationId: string): Promise<V2NIMP2PMessageReadReceipt>
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
conversationId |
string | 是 | 会话 ID,通过调用 V2NIMConversationIdUtil 的对应函数创建。V2NIMConversationType )| 聊天对象账号(accountId)或群组 ID。 |
示例代码
JavaV2NIMMessageService v2MessageService = NIMClient.getService(V2NIMMessageService.class);
v2MessageService.getP2PMessageReceipt("x | x | x",
new V2NIMSuccessCallback<V2NIMP2PMessageReadReceipt>() {
@Override
public void onSuccess(V2NIMP2PMessageReadReceipt v2NIMP2PMessageReadReceipt) {
}
},
new V2NIMFailureCallback() {
@Override
public void onFailure(V2NIMError error) {
}
});
Objective-C[[[NIMSDK sharedSDK] v2MessageService] getP2PMessageReceipt:@"conversationId"
success:^(V2NIMP2PMessageReadReceipt * _Nonnull receipt) {
//receipt 请参考 V2NIMP2PMessageReadReceipt
}
failure:^(V2NIMError * _Nonnull error) {
//error 包含错误原因
}];
C++auto conversationId = V2NIMConversationIdUtil::p2pConversationId("target_account_id");
messageService.getP2PMessageReceipt(
conversationId,
[](V2NIMP2PMessageReadReceipt receipt) {
// get p2p message receipt succeeded
},
[](V2NIMError error) {
// get p2p message receipt failed, handle error
});
TypeScripttry {
const res: V2NIMP2PMessageReadReceipt = await nim.V2NIMMessageService.getP2PMessageReceipt('me|1|another')
// todo Success
} catch (err) {
// todo error
}
TypeScripttry {
const result = await v2.messageService.getP2PMessageReceipt(conversationId)
// todo Success
} catch (err) {
// todo error
}
TypeScripttry {
const res: V2NIMP2PMessageReadReceipt = await nim.messageService.getP2PMessageReceipt('me|1|another')
// todo Success
} catch (err) {
// todo error
}
返回参数
无返回值。
Promise<V2NIMP2PMessageReadReceipt
> 单聊消息已读回执
相关回调
- 请求成功,返回
V2NIMSuccessCallback
回调,包含V2NIMP2PMessageReadReceipt
。 - 请求失败,返回
V2NIMFailureCallback
回调,包含消息相关错误码。
- 请求成功,返回
V2NIMConversationResultCallback
回调,可自定义设置。 - 请求失败,返回
V2NIMFailureCallback
回调,包含消息相关错误码。
无。
isPeerRead
接口描述
查询单聊消息是否已读。
消息发送方在发送消息后,可调用该方法判断消息接收方是否已读消息。
如果会话数据同步已开始(收到 V2NIMConversationListener.onSyncStarted
回调),建议您在数据同步完成(收到 V2NIMConversationListener.onSyncFinished
回调)后再进行该操作。
参数说明
Javaboolean isPeerRead(V2NIMMessage message);
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
message |
V2NIMMessage |
是 | 单聊消息对象,如果为空或不存在则返回 191004 参数错误。 |
Objective-C- (BOOL)isPeerRead:(V2NIMMessage *)message;
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
message |
V2NIMMessage |
是 | 单聊消息对象,如果为空或不存在则返回 191004 参数错误。 |
C++virtual bool isPeerRead(V2NIMMessage message) = 0;
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
message |
V2NIMMessage |
是 | 单聊消息对象,如果为空或不存在则返回 191004 参数错误。 |
TypeScriptisPeerRead(message: V2NIMMessage): boolean
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
message |
V2NIMMessage |
是 | 单聊消息对象,如果为空或不存在则返回 191004 参数错误。 |
TypeScriptisPeerRead(message): boolean
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
message |
V2NIMMessage |
是 | 单聊消息对象,如果为空或不存在则返回 191004 参数错误。 |
TypeScriptisPeerRead(message: V2NIMMessage): boolean
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
message |
V2NIMMessage |
是 | 单聊消息对象,如果为空或不存在则返回 191004 参数错误。 |
示例代码
JavaV2NIMMessageService v2MessageService = NIMClient.getService(V2NIMMessageService.class);
boolean isPeerRead = v2MessageService.isPeerRead(v2Message);
Objective-C[[[NIMSDK sharedSDK] v2MessageService] isPeerRead:message];
C++V2NIMMessage message;
// ...
bool peerRead = messageService.isPeerRead(message);
TypeScripttry {
const res: boolean = nim.V2NIMMessageService.isPeerRead(message)
// todo Success
} catch (err) {
// todo error
}
TypeScripttry {
const result = v2.messageService.isPeerRead(message)
// todo Success
} catch (err) {
// todo error
}
TypeScripttry {
const res: boolean = nim.messageService.isPeerRead(message)
// todo Success
} catch (err) {
// todo error
}
返回参数
- true:该单聊消息为已读
- false:该单聊消息为未读
相关回调
- 请求成功,返回
V2NIMSuccessCallback
回调,包含V2NIMP2PMessageReadReceipt
。 - 请求失败,返回
V2NIMFailureCallback
回调,包含消息相关错误码。
- 请求成功,返回
V2NIMConversationResultCallback
回调,可自定义设置。 - 请求失败,返回
V2NIMFailureCallback
回调,包含消息相关错误码。
无。
sendTeamMessageReceipts
接口描述
发送群组消息已读回执。
当消息接收方收到 onReceiveMessages
回调后,可以调用该方法向消息发送方发送已读回执。群组消息已读回执功能具体实现请参考 消息已读回执。
本端发送已读回执成功后,其他登录客户端和消息发送方均会收到群聊已读回执回调 onReceiveTeamMessageReadReceipts
。
参数说明
Javavoid sendTeamMessageReceipts(List<V2NIMMessage> messages, V2NIMSuccessCallback<Void> success, V2NIMFailureCallback failure);
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
messages |
List<V2NIMMessage > |
是 | 需要发送已读回执的群组消息对象。如果为空或不存在则返回 191004 参数错误。 |
success |
V2NIMSuccessCallback |
是 | 已读回执发送成功回调 |
failure |
V2NIMFailureCallback |
是 | 已读回执发送失败回调,返回 错误码。 |
Objective-C- (void)sendTeamMessageReceipts:(NSArray<V2NIMMessage *> *)messages
success:(nullable V2NIMSuccessCallback)success
failure:(nullable V2NIMFailureCallback)failure;
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
message |
NSArray<V2NIMMessage *> * |
是 | 需要发送已读回执的群组消息对象。如果为空或不存在则返回 191004 参数错误。 |
success |
V2NIMSuccessCallback |
是 | 已读回执发送成功回调 |
failure |
V2NIMFailureCallback |
是 | 已读回执发送失败回调,返回 错误码。 |
C++virtual void sendTeamMessageReceipts(nstd::vector<V2NIMMessage> messages, V2NIMSuccessCallback<void> success, V2NIMFailureCallback failure) = 0;
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
message |
nstd::vector<V2NIMMessage > |
是 | 需要发送已读回执的群组消息对象。如果为空或不存在则返回 191004 参数错误。 |
success |
V2NIMSuccessCallback |
是 | 已读回执发送成功回调 |
failure |
V2NIMFailureCallback |
是 | 已读回执发送失败回调,返回 错误码。 |
TypeScriptsendTeamMessageReceipts(messages: V2NIMMessage[]): Promise<void>
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
message |
V2NIMMessage [] |
是 | 需要发送已读回执的群组消息对象。如果为空或不存在则返回 191004 参数错误。 |
TypeScriptsendTeamMessageReceipts(messages): Promise<void>
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
message |
V2NIMMessage [] |
是 | 需要发送已读回执的群组消息对象。如果为空或不存在则返回 191004 参数错误。 |
TypeScriptsendTeamMessageReceipts(messages: V2NIMMessage[]): Promise<void>
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
message |
V2NIMMessage [] |
是 | 需要发送已读回执的群组消息对象。如果为空或不存在则返回 191004 参数错误。 |
示例代码
JavaV2NIMMessageService v2MessageService = NIMClient.getService(V2NIMMessageService.class);
List<V2NIMMessage> v2Messages = ; // 需要发送已读回执的消息列表
v2MessageService.sendTeamMessageReceipts(v2Messages,
new V2NIMSuccessCallback<Void>() {
@Override
public void onSuccess(Void unused) {
}
},
new V2NIMFailureCallback() {
@Override
public void onFailure(V2NIMError error) {
}
});
Objective-C[[[NIMSDK sharedSDK] v2MessageService] sendTeamMessageReceipts:@[message]
success:^{
//发送成功
}
failure:^(V2NIMError * _Nonnull error) {
//error 包含错误原因
}];
C++nstd::vector<V2NIMMessage> messages;
// ...
messageService.sendTeamMessageReceipts(
messages,
[]() {
// send team message receipts succeeded
},
[](V2NIMError error) {
// send team message receipts failed, handle error
});
TypeScripttry {
await nim.V2NIMMessageService.sendTeamMessageReceipts(messages)
// todo Success
} catch (err) {
// todo error
}
TypeScripttry {
await v2.messageService.sendTeamMessageReceipts(messages)
// todo Success
} catch (err) {
// todo error
}
TypeScripttry {
await nim.messageService.sendTeamMessageReceipts(messages)
// todo Success
} catch (err) {
// todo error
}
返回参数
无返回值。
Promise<void>
相关回调
- 请求成功,返回
V2NIMSuccessCallback
回调。发送已读回执成功,返回onReceiveTeamMessageReadReceipts
回调。 - 请求失败,返回
V2NIMFailureCallback
回调,包含消息相关错误码。
- 请求成功,返回
V2NIMConversationCallback
回调,可自定义设置。 - 请求失败,返回
V2NIMFailureCallback
回调,包含消息相关错误码。
发送已读回执成功,返回 onReceiveTeamMessageReadReceipts
回调。
发送已读回执成功,返回 receiveTeamMessageReadReceipts
回调。
getTeamMessageReceipts
接口描述
批量获取群组消息已读回执。获取结果不包含已删除、已撤回消息的已读回执。
如果会话数据同步已开始(收到 V2NIMConversationListener.onSyncStarted
回调),建议您在数据同步完成(收到 V2NIMConversationListener.onSyncFinished
回调)后再进行该操作,否则可能查询不到完整数据。
参数说明
Javavoid getTeamMessageReceipts(List<V2NIMMessage> messages, V2NIMSuccessCallback<List<V2NIMTeamMessageReadReceipt>> success, V2NIMFailureCallback failure);
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
messages |
List<V2NIMMessage > |
是 | 发送已读回执的群组消息对象列表。 |
success |
V2NIMSuccessCallback |
是 | 获取成功回调,返回 V2NIMTeamMessageReadReceipt 列表。 |
failure |
V2NIMFailureCallback |
是 | 获取失败回调,返回 错误码。 |
Objective-C- (void)getTeamMessageReceipts:(NSArray<V2NIMMessage *> *)messages
success:(nullable V2NIMTeamReadReceiptSuccess)success
failure:(nullable V2NIMFailureCallback)failure;
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
messages |
NSArray<V2NIMMessage *> * | 是 | 发送已读回执的群组消息对象列表。 |
success |
V2NIMSuccessCallback |
是 | 获取成功回调,返回 V2NIMTeamMessageReadReceipt 列表。 |
failure |
V2NIMFailureCallback |
是 | 获取失败回调,返回 错误码。 |
C++ virtual void getTeamMessageReceipts(nstd::vector<V2NIMMessage> messages,
V2NIMSuccessCallback<nstd::vector<V2NIMTeamMessageReadReceipt>> success,
V2NIMFailureCallback failure) = 0;
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
messages |
nstd::vector |
是 | 发送已读回执的群组消息对象列表。 |
success |
V2NIMSuccessCallback |
是 | 获取成功回调,返回 V2NIMTeamMessageReadReceipt 列表。 |
failure |
V2NIMFailureCallback |
是 | 获取失败回调,返回 错误码。 |
TypeScriptgetTeamMessageReceipts(messages: V2NIMMessage[]): Promise<V2NIMTeamMessageReadReceipt[]>
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
messages |
V2NIMMessage[] | 是 | 发送已读回执的群组消息对象列表。 |
TypeScriptgetTeamMessageReceipts(messages): Promise<V2NIMTeamMessageReadReceipt[]>
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
messages |
V2NIMMessage[] | 是 | 发送已读回执的群组消息对象列表。 |
TypeScriptgetTeamMessageReceipts(messages: V2NIMMessage[]): Promise<V2NIMTeamMessageReadReceipt[]>
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
messages |
V2NIMMessage[] | 是 | 发送已读回执的群组消息对象列表。 |
示例代码
JavaV2NIMMessageService v2MessageService = NIMClient.getService(V2NIMMessageService.class);
// List<V2NIMMessage> v2Messages = ; // 需要查询已读回执状态的消息
v2MessageService.getTeamMessageReceipts(v2Messages,
new V2NIMSuccessCallback<List<V2NIMTeamMessageReadReceipt>>() {
@Override
public void onSuccess(List<V2NIMTeamMessageReadReceipt> v2NIMTeamMessageReadReceipts) {
}
},
new V2NIMFailureCallback() {
@Override
public void onFailure(V2NIMError error) {
}
});
Objective-C[[[NIMSDK sharedSDK] v2MessageService] getTeamMessageReceipts:@[message]
success:^(NSArray<V2NIMTeamMessageReadReceipt *> * _Nonnull readReceipts) {
//readReceipts 请参考 V2NIMTeamMessageReadReceipt
}
failure:^(V2NIMError * _Nonnull error) {
//error 包含错误原因
}];
C++nstd::vector<V2NIMMessage> messages;
// ...
messageService.getTeamMessageReceipts(
messages,
[](nstd::vector<V2NIMTeamMessageReadReceipt> receipts) {
for (auto&& receipt : receipts) {
// do something
}
},
[](V2NIMError error) {
// get team message receipts failed, handle error
});
TypeScripttry {
const res: V2NIMTeamMessageReadReceipt[] = await nim.V2NIMMessageService.getTeamMessageReceipts(messages)
// todo Success
} catch (err) {
// todo error
}
TypeScripttry {
const result = await v2.messageService.getTeamMessageReceipts(messages)
// todo Success
} catch (err) {
// todo error
}
TypeScripttry {
const res: V2NIMTeamMessageReadReceipt[] = await nim.messageService.getTeamMessageReceipts(messages)
// todo Success
} catch (err) {
// todo error
}
返回参数
无返回值。
Promise<V2NIMTeamMessageReadReceipt
[]> 群组消息已读回执列表
相关回调
- 请求成功,返回
V2NIMSuccessCallback
回调,包含V2NIMTeamMessageReadReceipt
列表。 - 请求失败,返回
V2NIMFailureCallback
回调,包含消息相关错误码。
- 请求成功,返回
V2NIMConversationResultCallback
回调,可自定义设置。 - 请求失败,返回
V2NIMFailureCallback
回调,包含消息相关错误码。
无。
getTeamMessageReceiptDetail
接口描述
获取指定群组消息的已读回执详情,包含已读回执、已读/未读账号列表。可指定需要查询的群成员列表。
如果会话数据同步已开始(收到 V2NIMConversationListener.onSyncStarted
回调),建议您在数据同步完成(收到 V2NIMConversationListener.onSyncFinished
回调)后再进行该操作,否则可能查询不到完整数据。
参数说明
Javavoid getTeamMessageReceiptDetail(V2NIMMessage message, Set<String> memberAccountIds, V2NIMSuccessCallback<V2NIMTeamMessageReadReceiptDetail> success, V2NIMFailureCallback failure);
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
message |
V2NIMMessage |
是 | 发送已读回执的群组消息对象。如果为空或不存在则返回 191004 参数错误。 |
memberAccountIds |
Set |
否 | 群成员账号列表。如果为空则表示查询所有群成员。 |
success |
V2NIMSuccessCallback |
是 | 获取成功回调,返回 V2NIMTeamMessageReadReceiptDetail 。 |
failure |
V2NIMFailureCallback |
是 | 获取失败回调,返回 错误码。 |
Objective-C- (void)getTeamMessageReceiptDetail:(V2NIMMessage *)message
memberAccountIds:(NSSet*)memberAccountIds
success:(nullable V2NIMTeamReadReceiptDetailSuccess)success
failure:(nullable V2NIMFailureCallback)failure;
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
message |
V2NIMMessage |
是 | 发送已读回执的群组消息对象。如果为空或不存在则返回 191004 参数错误。 |
memberAccountIds |
NSSet* | 否 | 群成员账号列表。如果为空则表示查询所有群成员。 |
success |
V2NIMTeamReadReceiptDetailSuccess |
是 | 获取成功回调,可自定义设置。 |
failure |
V2NIMFailureCallback |
是 | 获取失败回调,返回 错误码。 |
C++virtual void getTeamMessageReceiptDetail(V2NIMMessage message,
nstd::set<nstd::string> memberAccountIds,
V2NIMSuccessCallback<V2NIMTeamMessageReadReceiptDetail> success,
V2NIMFailureCallback failure) = 0;
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
message |
V2NIMMessage |
是 | 发送已读回执的群组消息对象。如果为空或不存在则返回 191004 参数错误。 |
memberAccountIds |
nstd::set<\nstd::string> | 否 | 群成员账号列表。如果为空则表示查询所有群成员。 |
success |
V2NIMSuccessCallback |
是 | 获取成功回调,返回 V2NIMTeamMessageReadReceiptDetail 。 |
failure |
V2NIMFailureCallback |
是 | 获取失败回调,返回 错误码。 |
TypeScriptgetTeamMessageReceiptDetail(messages: V2NIMMessage, memberAccountIds?: string[]): Promise<V2NIMTeamMessageReadReceiptDetail>
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
message |
V2NIMMessage |
是 | 发送已读回执的群组消息对象。如果为空或不存在则返回 191004 参数错误。 |
memberAccountIds |
string[] | 否 | 群成员账号列表。如果为空则表示查询所有群成员。 |
TypeScriptgetTeamMessageReceiptDetail(message, memberAccountIds): Promise<V2NIMTeamMessageReadReceiptDetail>
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
message |
V2NIMMessage |
是 | 发送已读回执的群组消息对象。如果为空或不存在则返回 191004 参数错误。 |
memberAccountIds |
string[] | 否 | 群成员账号列表。如果为空则表示查询所有群成员。 |
TypeScriptgetTeamMessageReceiptDetail(messages: V2NIMMessage, memberAccountIds?: string[]): Promise<V2NIMTeamMessageReadReceiptDetail>
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
message |
V2NIMMessage |
是 | 发送已读回执的群组消息对象。如果为空或不存在则返回 191004 参数错误。 |
memberAccountIds |
string[] | 否 | 群成员账号列表。如果为空则表示查询所有群成员。 |
示例代码
JavaV2NIMMessageService v2MessageService = NIMClient.getService(V2NIMMessageService.class);
// V2NIMMessage message = ; // 需要查询已读回执状态的消息
// Set<String> memberAccountIds = ; // 指定账号列表
v2MessageService.getTeamMessageReceiptDetail(message, memberAccountIds,
new V2NIMSuccessCallback<V2NIMTeamMessageReadReceiptDetail>() {
@Override
public void onSuccess(V2NIMTeamMessageReadReceiptDetail v2NIMTeamMessageReadReceiptDetail) {
}
},
new V2NIMFailureCallback() {
@Override
public void onFailure(V2NIMError error) {
}
}
);
Objective-C[[[NIMSDK sharedSDK] v2MessageService] getTeamMessageReceiptDetail:message
memberAccountIds:@[@"user1"] success:^(V2NIMTeamMessageReadReceiptDetail * _Nonnull detail) {
//detail 请参考 V2NIMTeamMessageReadReceiptDetail
}
failure:^(V2NIMError * _Nonnull error) {
//error 包含错误原因
}];
C++V2NIMMessage message;
// ...
messageService.getTeamMessageReceiptDetail(
message,
{},
[](V2NIMTeamMessageReadReceiptDetail readReceiptDetial) {
// get team message receipt detail succeeded
},
[](V2NIMError error) {
// get team message receipt detail failed, handle error
});
TypeScripttry {
const res: V2NIMTeamMessageReadReceiptDetail = await nim.V2NIMMessageService.getTeamMessageReceiptDetail(message)
// todo Success
} catch (err) {
// todo error
}
TypeScripttry {
const result = await v2.messageService.getTeamMessageReceiptDetail(message, memberAccountIds)
// todo Success
} catch (err) {
// todo error
}
TypeScripttry {
const res: V2NIMTeamMessageReadReceiptDetail = await nim.messageService.getTeamMessageReceiptDetail(message)
// todo Success
} catch (err) {
// todo error
}
返回参数
无返回值。
Promise<V2NIMTeamMessageReadReceiptDetail
> 群组消息已读回执详情
相关回调
- 请求成功,返回
V2NIMSuccessCallback
回调,包含V2NIMTeamMessageReadReceiptDetail
。 - 请求失败,返回
V2NIMFailureCallback
回调,包含消息相关错误码。
- 请求成功,返回
V2NIMConversationResultCallback
回调,可自定义设置。 - 请求失败,返回
V2NIMFailureCallback
回调,包含消息相关错误码。
无。
voiceToText
接口描述
语音转文字。
该方法将语音内容转换为可编辑、可搜索的文本。
使用该接口前,请至网易云信控制台 开通语音识别。
参数说明
Javavoid voiceToText(V2NIMVoiceToTextParams params, V2NIMSuccessCallback<String> success, V2NIMFailureCallback failure);
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
params |
V2NIMVoiceToTextParams |
是 | 语音转文字配置参数。不能为空,否则返回 191004 参数错误。 |
success |
V2NIMSuccessCallback |
是 | 转换成功回调,返回转换后的文本字符串。 |
failure |
V2NIMFailureCallback |
是 | 转换失败回调,返回 错误码。 |
Objective-C- (void)voiceToText:(V2NIMVoiceToTextParams *)params
success:(nullable V2NIMTranslateSuccess)success
failure:(nullable V2NIMFailureCallback)failure;
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
params |
V2NIMVoiceToTextParams |
是 | 语音转文字配置参数。不能为空,否则返回 191004 参数错误。 |
success |
V2NIMTranslateSuccess |
是 | 转换成功回调,可自定义设置。 |
failure |
V2NIMFailureCallback |
是 | 转换失败回调,返回 错误码。 |
C++virtual void voiceToText(V2NIMVoiceToTextParams params, V2NIMSuccessCallback<nstd::string> success, V2NIMFailureCallback failure) = 0;
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
params |
V2NIMVoiceToTextParams |
是 | 语音转文字配置参数。不能为空,否则返回 191004 参数错误。 |
success |
V2NIMSuccessCallback |
是 | 转换成功回调,返回转换后的文本字符串。 |
failure |
V2NIMFailureCallback |
是 | 转换失败回调,返回 错误码。 |
TypeScriptvoiceToText(params: V2NIMVoiceToTextParams): Promise<string>
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
params |
V2NIMVoiceToTextParams |
是 | 语音转文字配置参数。不能为空,否则返回 191004 参数错误。 |
TypeScriptvoiceToText(params): Promise<string>
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
params |
V2NIMVoiceToTextParams |
是 | 语音转文字配置参数。不能为空,否则返回 191004 参数错误。 |
TypeScriptvoiceToText(params: V2NIMVoiceToTextParams): Promise<string>
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
params |
V2NIMVoiceToTextParams |
是 | 语音转文字配置参数。不能为空,否则返回 191004 参数错误。 |
示例代码
JavaV2NIMMessageService v2MessageService = NIMClient.getService(V2NIMMessageService.class);
V2NIMVoiceToTextParams params = V2NIMVoiceToTextParams.V2NIMVoiceToTextParamsBuilder
// 必填
.builder(duration)
// 根据实际情况配置
.withMimeType()
.withSampleRate()
.withSceneName()
.withVoicePath()
.withVoiceUrl()
.build();
v2MessageService.voiceToText(params,
new V2NIMSuccessCallback<String>() {
@Override
public void onSuccess(String s) {
// 转换成功
}
},
new V2NIMFailureCallback() {
@Override
public void onFailure(V2NIMError error) {
// 转换失败
}
});
Objective-CV2NIMVoiceToTextParams *voiceToTextParams = [[V2NIMVoiceToTextParams alloc] init];
[[[NIMSDK sharedSDK] v2MessageService] voiceToText:voiceToTextParams
success:^(NSString * _Nonnull result) {
// result 语音转出的文本
}
failure:^(V2NIMError * _Nonnull error) {
// error 包含错误原因
}];
C++V2NIMVoiceToTextParams params,
params.voiceUrl = "voice_url";
params.mimeType = "aac";
params.duration = "1000";
messageService.voiceToText(
params,
[](nstd::string text) {
// translate voice to text succeeded
},
[](V2NIMError error) {
// translate voice to text failed, handle error
});
TypeScripttry {
const res: string = await nim.V2NIMMessageService.voiceToText({
voiceUrl: 'https://nim.nosdn.127.net/{bucket}/{object}',
sampleRate: '44kHz',
duration: 30000,
mimeType: 'audio/mp3'
});
// TODO: Success
} catch (err) {
// TODO: Error
}
TypeScripttry {
const result = await v2.messageService.voiceToText({
voiceUrl: 'https://nim.nosdn.127.net/{bucket}/{object}',
sampleRate: '44kHz',
duration: 30000,
mimeType: 'audio/mp3'
});
// TODO: Success
} catch (err) {
// TODO: Error
}
TypeScripttry {
const res: string = await nim.messageService.voiceToText({
voiceUrl: 'https://nim.nosdn.127.net/{bucket}/{object}',
sampleRate: '44kHZ',
duration: 30000,
mimeType: 'audio/mp3'
})
// todo Success
} catch (err) {
// todo error
}
返回参数
String 格式文本字符串
Promise
相关回调
- 请求成功,返回
V2NIMSuccessCallback
回调。 - 请求失败,返回
V2NIMFailureCallback
回调,包含消息相关错误码。
- 请求成功,返回
V2NIMConversationResultCallback
回调,可自定义设置。 - 请求失败,返回
V2NIMFailureCallback
回调,包含消息相关错误码。
无。
searchCloudMessages
接口描述
全文检索云端历史消息。
该方法按照指定条件全局检索整个应用内的云端历史消息。
使用该接口前,请至 网易云信控制台 开通全文云端消息检索,详细介绍请参考 开始使用网易云信 IM。
参数说明
Javavoid searchCloudMessages(V2NIMMessageSearchParams params, V2NIMSuccessCallback<List<V2NIMMessage>> success, V2NIMFailureCallback failure);
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
params |
V2NIMMessageSearchParams |
是 | 消息检索配置参数。不能为空,否则返回 191004 参数错误。 |
success |
V2NIMSuccessCallback |
是 | 检索成功回调,返回 V2NIMMessage 列表。 |
failure |
V2NIMFailureCallback |
是 | 转换失败回调,返回 错误码。 |
Objective-C- (void)searchCloudMessages:(V2NIMMessageSearchParams *)params
success:(nullable V2NIMGetMessageListSuccess)success
failure:(nullable V2NIMFailureCallback)failure;
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
params |
V2NIMMessageSearchParams |
是 | 消息检索配置参数。不能为空,否则返回 191004 参数错误。 |
success |
V2NIMSuccessCallback |
是 | 检索成功回调,返回 V2NIMMessage 列表。 |
failure |
V2NIMFailureCallback |
是 | 转换失败回调,返回 错误码。 |
C++virtual void searchCloudMessages(V2NIMMessageSearchParams params,
V2NIMSuccessCallback<nstd::vector<V2NIMMessage>> success,
V2NIMFailureCallback failure) = 0;
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
params |
V2NIMMessageSearchParams |
是 | 消息检索配置参数。不能为空,否则返回 191004 参数错误。 |
success |
V2NIMSuccessCallback |
是 | 检索成功回调,返回 V2NIMMessage 列表。 |
failure |
V2NIMFailureCallback |
是 | 转换失败回调,返回 错误码。 |
TypeScriptsearchCloudMessages(searchParams: V2NIMMessageSearchParams): Promise<V2NIMMessage[]>
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
params |
V2NIMMessageSearchParams |
是 | 消息检索配置参数。不能为空,否则返回 191004 参数错误。 |
TypeScriptsearchCloudMessages(params): Promise<V2NIMMessage[]>
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
params |
V2NIMMessageSearchParams |
是 | 消息检索配置参数。不能为空,否则返回 191004 参数错误。 |
TypeScriptsearchCloudMessages(searchParams: V2NIMMessageSearchParams): Promise<V2NIMMessage[]>
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
params |
V2NIMMessageSearchParams |
是 | 消息检索配置参数。不能为空,否则返回 191004 参数错误。 |
示例代码
JavaV2NIMMessageService v2MessageService = NIMClient.getService(V2NIMMessageService.class);
V2NIMMessageSearchParams searchParams = V2NIMMessageSearchParams.V2NIMMessageSearchParamsBuilder
// 搜索关键字,必填
.builder(keyword)
// TODO: 根据实际情况配置
// .withBeginTime()
// .withConversationLimit()
// .withEndTime()
// .withMessageLimit()
// .withMessageSubtypes()
// .withMessageTypes()
// .withP2pAccountIds()
// .withSenderAccountIds()
// .withSortOrder()
// .withTeamIds()
.build();
v2MessageService.searchCloudMessages(searchParams,
new V2NIMSuccessCallback<List<V2NIMMessage>>() {
@Override
public void onSuccess(List<V2NIMMessage> v2NIMMessages) {
}
},
new V2NIMFailureCallback() {
@Override
public void onFailure(V2NIMError error) {
}
});
Objective-CV2NIMMessageSearchParams *searchParams = [[V2NIMMessageSearchParams alloc] init];
[[[NIMSDK sharedSDK] v2MessageService] searchCloudMessages:searchParams
success:^(NSArray<V2NIMMessage *> * _Nonnull result) {
//查询成功结果
}
failure:^(V2NIMError * _Nonnull error) {
//error 包含错误原因
}];
C++V2NIMMessageSearchParams params;
params.keyword = "keyword";
params.messageLimit = 20;
messageService.searchCloudMessages(
params,
[](nstd::vector<V2NIMMessage> messages) {
for (auto&& message : messages) {
// do something
}
},
[](V2NIMError error) {
// search cloud messages failed, handle error
});
TypeScripttry {
const res: V2NIMMessage[] = await nim.V2NIMMessageService.searchCloudMessages({
keyword: 'keyword',
beginTime: 0,
endTime: 0,
conversationLimit: 20,
sortOrder: 0,
p2pAccountIds: ['a', 'b'],
senderAccountIds: ['c', 'd']
})
// todo Success
} catch (err) {
// todo error
}
TypeScripttry {
const result = await v2.messageService.searchCloudMessages({
keyword: 'keyword',
beginTime: 0,
endTime: 0,
conversationLimit: 20,
sortOrder: 0,
p2pAccountIds: ['a', 'b'],
senderAccountIds: ['c', 'd']
})
// todo Success
} catch (err) {
// todo error
}
TypeScripttry {
const res: V2NIMMessage[] = await nim.messageService.searchCloudMessages({
keyword: 'keyword',
beginTime: 0,
endTime: 0,
conversationLimit: 20,
sortOrder: 0,
p2pAccountIds: ['a', 'b'],
senderAccountIds: ['c', 'd']
})
// todo Success
} catch (err) {
// todo error
}
返回参数
无。
Promise<V2NIMMessage
[]> 云端消息列表
相关回调
- 请求成功,返回
V2NIMSuccessCallback
回调,包含V2NIMMessage
云端消息列表。 - 请求失败,返回
V2NIMFailureCallback
回调,包含消息相关错误码。
- 请求成功,返回
V2NIMConversationResultCallback
回调,可自定义设置。 - 请求失败,返回
V2NIMFailureCallback
回调,包含消息相关错误码。
无。
getThreadMessageList
接口描述
分页获取云端 Thread 历史消息列表。
该方法用于根据 Thread 根消息分页获取所有 Thread 子消息。
为避免触发请求频控,若云端会话数据同步已完成(收到 V2NIMConversationListener.onSyncFinished
),建议您改用 getLocalThreadMessageList
方法获取本地 Thread 历史消息列表。
参数说明
Javavoid getThreadMessageList(V2NIMThreadMessageListOption threadMessageListOption, V2NIMSuccessCallback<V2NIMThreadMessageListResult> success, V2NIMFailureCallback failure);
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
threadMessageListOption |
V2NIMThreadMessageListOption |
是 | Thread 消息查询配置项,支持根据 Thread 根消息的参考信息分页查询子消息。 |
success |
V2NIMSuccessCallback |
是 | 查询成功回调,返回 V2NIMThreadMessageListResult 列表。 |
failure |
V2NIMFailureCallback |
是 | 查询失败回调,返回 错误码。 |
Objective-C- (void)getThreadMessageList:(V2NIMThreadMessageListOption *)threadMessageListOption
success:(nullable V2NIMGetThreadMessageListSuccess)success
failure:(nullable V2NIMFailureCallback)failure;
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
threadMessageListOption |
V2NIMThreadMessageListOption |
是 | Thread 消息查询配置项,支持根据 Thread 根消息的参考信息分页查询子消息。 |
success |
V2NIMGetThreadMessageListSuccess |
是 | 查询成功回调,可自定义设置。 |
failure |
V2NIMFailureCallback |
是 | 查询失败回调,返回 错误码。 |
C++virtual void v2::V2NIMMessageService::getThreadMessageList(V2NIMThreadMessageListOption threadMessageListOption,
V2NIMSuccessCallback<V2NIMThreadMessageListResult> success,
V2NIMFailureCallback failure
)
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
threadMessageListOption |
V2NIMThreadMessageListOption |
是 | Thread 消息查询配置项,支持根据 Thread 根消息的参考信息分页查询子消息。 |
success |
V2NIMSuccessCallback |
是 | 查询成功回调,返回 V2NIMThreadMessageListResult 列表。 |
failure |
V2NIMFailureCallback |
是 | 查询失败回调,返回 错误码。 |
TypeScriptgetThreadMessageList(option: V2NIMThreadMessageListOption): Promise<V2NIMThreadMessageListResul
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
option |
V2NIMThreadMessageListOption |
是 | Thread 消息查询配置项,支持根据 Thread 根消息的参考信息分页查询子消息。 |
TypeScriptgetThreadMessageList(threadMessageListOption): Promise<V2NIMThreadMessageListResult>
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
threadMessageListOption |
V2NIMThreadMessageListOption |
是 | Thread 消息查询配置项,支持根据 Thread 根消息的参考信息分页查询子消息。 |
TypeScriptgetThreadMessageList(option: V2NIMThreadMessageListOption): Promise<V2NIMThreadMessageListResult>
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
option |
V2NIMThreadMessageListOption |
是 | Thread 消息查询配置项,支持根据 Thread 根消息的参考信息分页查询子消息。 |
示例代码
JavaV2NIMThreadMessageListOption option = new V2NIMThreadMessageListOption();
// messageRefer field is mandatory and is used to determine a root message. It can be filled directly with a message body or a V2NIMMessageRefer object can be constructed based on the message body's fields.
option.setMessageRefer(rootMessageRefer);
// The following fields are optional
// beginTime and endTime define the time range of the query. Fill with 0 to indicate no restriction.
option.setBeginTime(0L);
option.setEndTime(0L);
// For the first page, leave this field blank. When paging, fill in the serverId of the message closest to the target page's current page. For example, anchorMessage represents the earliest message on the current page, allowing the current request to page backward (earlier events). Query 20 messages earlier than anchorMessage (excluding itself).
option.setExcludeMessageServerId("123456");
// Maximum number of messages to be retrieved
option.setLimit(20);
// Query direction, default is V2NIM_QUERY_DIRECTION_DESC
option.setDirection(V2NIMQueryDirection.V2NIM_QUERY_DIRECTION_DESC);
NIMClient.getService(V2NIMMessageService.class).getThreadMessageList(option, v2NIMThreadMessageListResult -> {
//Query successful
}, error -> {
//Query failed
});
Objective-CV2NIMThreadMessageListOption *option = [[V2NIMThreadMessageListOption alloc] init];
// messageRefer 字段必填,此字段用于确定一条根消息。可以直接填消息体,也可以根据消息体的字段,构造一个 V2NIMMessageRefer 对象
option.messageRefer = rootMessage;
//下面的字段均为可选字段
// beginTime 和 endTime 划定了查询的时间范围,填 0 表示不做限制。
option.beginTime = 0;
option.endTime = 1715331571.927; //anchorMessage.createTime
// 第一页不填,翻页时填写距离目标页最近的当前页的消息的 serverId。
// 如 anchorMessage 表示当前页中最早的一条消息,则当前请求可以实现向前(事件更早)翻页。查询比 anchorMessage 早(不包括自己)的 20 条消息
option.excludeMessageServerId = @"123456"; //anchorMessage.messageServerId
// 查询出的消息条数上限
option.limit = 20;
// 查询方向。DESC 为按时间戳从大到小查询
option.direction = V2NIM_QUERY_DIRECTION_DESC;
// 调用接口查询消息
[[NIMSDK sharedSDK].v2MessageService getThreadMessageList:option success:^(V2NIMThreadMessageListResult *result) {
// 查询成功
} failure:^(V2NIMError *error) {
// 查询失败
}];
C++V2NIMTheadMessageListOption threadMessageListOption;
// ...
messageService.getThreadMessageList(
threadMessageListOption,
[](V2NIMThreadMessageListResult response) {
// do something
},
[](V2NIMError error) {
// get message list by refers failed, handle error
});
TypeScripttry {
const result = await nim.V2NIMMessageService.getThreadMessageList({
messageRefer: {
"senderId": "account1",
"receiverId": "account2",
"messageClientId": "21a7e3d43a7afdf52e11f61d9753f99c",
"messageServerId": "231689624",
"createTime": 1715222453441,
"conversationType": 1,
"conversationId": "account1|1|account2"
},
"limit": 50
})
} catch(err) {
console.error('getAddApplicationUnreadCount Error:', err)
}
TypeScripttry {
const result = await v2.messageService.getThreadMessageList({
messageRefer: {
"senderId": "account1",
"receiverId": "account2",
"messageClientId": "21a7e3d43a7afdf52e11f61d9753f99c",
"messageServerId": "231689624",
"createTime": 1715222453441,
"conversationType": 1,
"conversationId": "account1|1|account2"
},
"limit": 50
})
} catch(err) {
console.error('getAddApplicationUnreadCount Error:', err)
}
TypeScripttry {
const result = await nim.messageService.getThreadMessageList({
messageRefer: {
"senderId": "account1",
"receiverId": "account2",
"messageClientId": "21a7e3d43a7afdf52e11f61d9753f99c",
"messageServerId": "231689624",
"createTime": 1715222453441,
"conversationType": 1,
"conversationId": "account1|1|account2"
},
"limit": 50
})
} catch(err) {
console.error('getAddApplicationUnreadCount Error:', err)
}
返回参数
无返回值。
Promise<V2NIMThreadMessageListResult>:Thread 消息列表
相关回调
- 请求成功,返回
V2NIMSuccessCallback
回调,包含V2NIMThreadMessageListResult
列表。 - 请求失败,返回
V2NIMFailureCallback
回调,包含消息相关错误码。
- 请求成功,返回
V2NIMGetThreadMessageListSuccess
回调,可自定义设置。 - 请求失败,返回
V2NIMFailureCallback
回调,包含消息相关错误码。
无。
getLocalThreadMessageList
接口描述
获取本地 Thread 历史消息列表。
该方法用于根据 Thread 根消息获取所有本地 Thread 子消息。
Web 端不支持该接口。
参数说明
Javavoid getLocalThreadMessageList(V2NIMMessageRefer messageRefer, V2NIMSuccessCallback<V2NIMThreadMessageListResult> success, V2NIMFailureCallback failure);
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
messageRefer |
V2NIMMessageRefer |
是 | Thread 消息参考信息,支持根据 Thread 根消息的参考信息查询本地子消息。 |
success |
V2NIMSuccessCallback |
是 | 查询成功回调,返回 V2NIMThreadMessageListResult 列表。 |
failure |
V2NIMFailureCallback |
是 | 查询失败回调,返回 错误码。 |
Objective-C- (void)getLocalThreadMessageList:(V2NIMMessageRefer *)messageRefer
success:(nullable V2NIMGetLocalThreadMessageListSuccess)success
failure:(nullable V2NIMFailureCallback)failure;
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
messageRefer |
V2NIMMessageRefer |
是 | Thread 消息参考信息,支持根据 Thread 根消息的参考信息查询本地子消息。 |
success |
V2NIMGetLocalThreadMessageListSuccess |
是 | 查询成功回调,可自定义设置。 |
failure |
V2NIMFailureCallback |
是 | 查询失败回调,返回 错误码。 |
C++virtual void v2::V2NIMMessageService::getLocalThreadMessageList(V2NIMMessageRefer messageRefer,
V2NIMSuccessCallback<V2NIMThreadMessageListResult> success,
V2NIMFailureCallback failure)
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
messageRefer |
V2NIMMessageRefer |
是 | Thread 消息参考信息,支持根据 Thread 根消息的参考信息查询本地子消息。 |
success |
V2NIMSuccessCallback |
是 | 查询成功回调,返回 V2NIMThreadMessageListResult 列表。 |
failure |
V2NIMFailureCallback |
是 | 查询失败回调,返回 错误码。 |
TypeScriptgetLocalThreadMessageList(messageRefer): Promise<V2NIMThreadMessageListResult>
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
message |
V2NIMMessageRefer |
是 | Thread 消息参考信息,支持根据 Thread 根消息的参考信息查询本地子消息。 |
TypeScriptgetLocalThreadMessageList(message: V2NIMMessageRefer): Promise<V2NIMThreadMessageListResult>
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
message |
V2NIMMessageRefer |
是 | Thread 消息参考信息,支持根据 Thread 根消息的参考信息查询本地子消息。 |
示例代码
Java// messageRefer 字段用于确定一条根消息。可以直接填消息体,也可以根据消息体的字段,构造一个 V2NIMMessageRefer 对象
V2NIMMessageRefer messageRefer = rootMessage;
NIMClient.getService(V2NIMMessageService.class).getLocalThreadMessageList(messageRefer, v2NIMThreadMessageListResult -> {
//Query successful
}, error -> {
//Query failed
});
Objective-C// messageRefer 字段用于确定一条根消息。可以直接填消息体,也可以根据消息体的字段,构造一个 V2NIMMessageRefer 对象
V2NIMMessageRefer *messageRefer = rootMessage;
// 调用接口查询消息
[[NIMSDK sharedSDK].v2MessageService getLocalThreadMessageList:messageRefer success:^(V2NIMThreadMessageListResult *result) {
// 查询成功
} failure:^(V2NIMError *error) {
// 查询失败
}];
C++V2NIMMessageRefer messageRefer;
// ...
messageService.getLocalThreadMessageList(
messageRefer,
[](V2NIMThreadMessageListResult response) {
// do something
},
[](V2NIMError error) {
// get message list by refers failed, handle error
});
TypeScriptconst messageRefer = {
"senderId": "account1",
"receiverId": "account2",
"messageClientId": "21a7e3d43a7afdf52e11f61d9753f99c",
"messageServerId": "231689624",
"createTime": 1715222453441,
"conversationType": 1,
"conversationId": "account1|1|account2"
} as V2NIMMessageRefer
const result = await v2.messageService.getLocalThreadMessageList(messageRefer)
TypeScriptconst messageRefer = {
"senderId": "account1",
"receiverId": "account2",
"messageClientId": "21a7e3d43a7afdf52e11f61d9753f99c",
"messageServerId": "231689624",
"createTime": 1715222453441,
"conversationType": 1,
"conversationId": "account1|1|account2"
} as V2NIMMessageRefer
const result = await nim.messageService.getLocalThreadMessageList(messageRefer)
返回参数
无返回值。
Promise<V2NIMThreadMessageListResult
>
相关回调
- 请求成功,返回
V2NIMSuccessCallback
回调,包含V2NIMThreadMessageListResult
列表。 - 请求失败,返回
V2NIMFailureCallback
回调,包含消息相关错误码。
- 请求成功,返回
V2NIMGetLocalThreadMessageListSuccess
回调,可自定义设置。 - 请求失败,返回
V2NIMFailureCallback
回调,包含消息相关错误码。
无。
registerCustomAttachmentParser
接口描述
注册自定义消息附件解析器,解析消息类型为 100 的消息附件。
- 可以注册多个解析器,后注册的优先级高,优先派发, 一旦被处理,则不继续派发。
- 如果同一个类型多个解析均可以解析,则优先级高的先解析, 解析后直接返回。
- 按需注册,若不再需要,请及时反注册。
- 该方法为同步。
参数说明
Javavoid registerCustomAttachmentParser(V2NIMMessageCustomAttachmentParser parser);
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
parser |
V2NIMMessageCustomAttachmentParser |
是 | 注册的自定义消息附件解析器。 |
Objective-C- (void)registerCustomAttachmentParser:(id<V2NIMMessageCustomAttachmentParser>)parser;
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
parser |
V2NIMMessageCustomAttachmentParser |
是 | 注册的自定义消息附件解析器。 |
C++virtual void registerCustomAttachmentParser(const nstd::shared_ptr<V2NIMMessageCustomAttachmentParser>& parser) = 0;
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
parser |
V2NIMMessageCustomAttachmentParser |
是 | 注册的自定义消息附件解析器。 |
TypescriptregisterCustomAttachmentParser(parser: V2NIMMessageCustomAttachmentParser): void
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
parser |
V2NIMMessageCustomAttachmentParser |
是 | 注册的自定义消息附件解析器。 |
示例代码
JavaV2NIMMessageCustomAttachmentParser parser = new V2NIMMessageCustomAttachmentParser() {
@Override
public V2NIMMessageCustomAttachment parse(int subType, String attach) {
V2NIMMessageCustomAttachment attachment = null;
if(subType == 1){
attachment = new V2Test1CustomAttachment();
}
else if (subType == 2) {
attachment = new V2Test2CustomAttachment();
}
if(attachment != null){
attachment.parse(attach);
}
return attachment;
}
};
NIMClient.getService(V2NIMMessageService.class).registerCustomAttachmentParser(parser);
Objective-CMyParser *parser = [[MyParser alloc] init];
[[NIMSDK sharedSDK].v2MessageService registerCustomAttachmentParser:parser];
C++struct V2NIMMessageTempCustomAttachmentParser : public V2NIMMessageCustomAttachmentParser {
nstd::shared_ptr<V2NIMMessageAttachment> parse(const nstd::string& attach, const int32_t& subType) override {
// parse custom attachment
}
}
V2NIMMessageTempCustomAttachmentParser parser;
messageService.registerCustomAttachmentParser(parser);
Typescriptconst parser = function (subType, raw) {
const rawObj = JSON.parse(raw);
rawObj.subType = subType;
return rawObj;
}
nim.V2NIMMessageService.registerCustomAttachmentParser(parser)
返回参数
无。
unregisterCustomAttachmentParser
接口描述
反注册自定义消息附件解析器。
该方法为同步。
参数说明
Javavoid unregisterCustomAttachmentParser(V2NIMMessageCustomAttachmentParser parser);
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
parser |
V2NIMMessageCustomAttachmentParser |
是 | 反注册的自定义消息附件解析器 |
Objective-C- (void)unregisterCustomAttachmentParser:(id<V2NIMMessageCustomAttachmentParser>)parser;
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
parser |
V2NIMMessageCustomAttachmentParser |
是 | 反注册的自定义消息附件解析器 |
C++virtual void unRegisterCustomAttachmentParser(const nstd::shared_ptr<V2NIMMessageCustomAttachmentParser>& parser) = 0;
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
parser |
V2NIMMessageCustomAttachmentParser |
是 | 反注册的自定义消息附件解析器 |
TypescriptunregisterCustomAttachmentParser(parser: V2NIMMessageCustomAttachmentParser): void
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
parser |
V2NIMMessageCustomAttachmentParser |
是 | 反注册的自定义消息附件解析器 |
示例代码
JavaNIMClient.getService(V2NIMMessageService.class).unregisterCustomAttachmentParser(parser);
Objective-C[[NIMSDK sharedSDK].v2MessageService unregisterCustomAttachmentParser:parser];
C++struct V2NIMMessageTempCustomAttachmentParser : public V2NIMMessageCustomAttachmentParser {
nstd::shared_ptr<V2NIMMessageAttachment> parse(const nstd::string& attach, const int32_t& subType) override {
// parse custom attachment
}
}
V2NIMMessageTempCustomAttachmentParser parser;
messageService.registerCustomAttachmentParser(parser);
...
messageService.unRegisterCustomAttachmentParser(parser);
Typescriptconst parser = function (subType, raw) {
const rawObj = JSON.parse(raw);
rawObj.subType = subType;
return rawObj;
}
nim.V2NIMMessageService.registerCustomAttachmentParser(parser)
// 备注: 注册和反注册须传同一个函数.
nim.V2NIMMessageService.unregisterCustomAttachmentParser(parser)
返回参数
无。