消息构建
更新时间: 2024/11/14 11:44:17
网易云信即时通讯 SDK(NetEase IM SDK,以下简称 NIM SDK)支持多种消息类型,助您快速实现多样化的消息业务场景。在进行消息收发等操作前,您需要先构建消息。
本文中消息均指会话内消息,适用于单聊、群组、超大群类型会话。更多消息相关功能请参考开发文档 消息概述。
支持平台
本文内容适用的开发平台或框架如下表所示:
Android | iOS | macOS/Windows | Web/uni-app/小程序 | Node.js/Electron | HarmonyOS |
---|---|---|---|---|---|
✔️️ | ✔️️ | ✔️️ | ✔️️ | ✔️️ | ✔️️ |
API 概览
API | 说明 | 起始版本 |
---|---|---|
createTextMessage | 创建一条文本消息 | v10.2.0(对应 HarmonyOS v0.5.0) |
createImageMessage | 创建一条图片消息 | v10.2.0(对应 HarmonyOS v0.5.0) |
createAudioMessage | 创建一条语音消息 | v10.2.0(对应 HarmonyOS v0.5.0) |
createVideoMessage | 创建一条视频消息 | v10.2.0(对应 HarmonyOS v0.5.0) |
createFileMessage | 创建一条文件消息 | v10.2.0(对应 HarmonyOS v0.5.0) |
createLocationMessage | 创建一条地理位置消息 | v10.2.0(对应 HarmonyOS v0.5.0) |
createCustomMessage | 创建一条自定义消息 | v10.2.0(对应 HarmonyOS v0.5.0) |
createForwardMessage | 创建一条转发消息 | v10.2.0(对应 HarmonyOS v0.5.0) |
createTipsMessage | 创建一条提示消息 | v10.2.0(对应 HarmonyOS v0.5.0) |
createCallMessage | 创建一条话单消息 | |
createCustomMessageWithAttachment | 构造自定义消息 | v10.5.0 |
接口类
V2NIMMessageCreator
类提供消息构建接口,支持构建多种类型的消息。
createTextMessage
接口描述
创建一条文本消息。
- 在登录后、发送消息前调用该方法。
- 该方法为同步。
参数说明
Android
Javapublic static V2NIMMessage createTextMessage(String text)
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
text |
String | 是 | 文本消息内容,长度上限为 5000 字符。 |
iOS
Objective-C+ (V2NIMMessage *)createTextMessage:(NSString *)text;
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
text |
NSString * | 是 | 文本消息内容,长度上限为 5000 字符。 |
macOS/Windows
C++static nstd::optional<V2NIMMessage> createTextMessage(nstd::string text);
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
text |
nstd::string | 是 | 文本消息内容,长度上限为 5000 字符。 |
Web/uni-app/小程序
TypeScriptcreateTextMessage(text: string): V2NIMMessage
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
text |
string | 是 | 文本消息内容,长度上限为 5000 字符。 |
Node.js/Electron
TypeScriptcreateTextMessage(text): null | V2NIMMessage
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
text |
string | 是 | 文本消息内容,长度上限为 5000 字符。 |
HarmonyOS
TypeScriptcreateTextMessage(text: string): V2NIMMessage
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
text |
string | 是 | 文本消息内容,长度上限为 5000 字符。 |
示例代码
Android
JavaV2NIMMessage v2TextMessage = V2NIMMessageCreator.createTextMessage("text content");
iOS
Objective-CV2NIMMessage *v2Message = [V2NIMMessageCreator createTextMessage:@"hello world"];
macOS/Windows
C++auto textMessage = V2NIMMessageCreator::createTextMessage("hello world");
if(!textMessage) {
// create text message failed
}
Web/uni-app/小程序
TypeScripttry {
const message = nim.V2NIMMessageCreator.createTextMessage('hello world')
} catch(err) {
// todo error
}
Node.js/Electron
TypeScripttry {
const message = v2.messageCreator.createTextMessage('Hello, world!')
} catch(err) {
// todo error
}
HarmonyOS
TypeScripttry {
const message = nim.messageCreator.createTextMessage('hello world')
} catch(err) {
// todo error
}
返回参数
已创建的消息对象 V2NIMMessage
。
createImageMessage
接口描述
创建一条图片消息。
- 在登录后、发送消息前调用该方法。
- 该方法为同步。
参数说明
Android
Javapublic static V2NIMMessage createImageMessage(String imagePath, String name, String sceneName, Integer width, Integer height)
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
imagePath |
String | 是 | 图片文件地址。 |
name |
String | 否 | 图片文件显示名称,可不同于文件名。 |
sceneName |
String | 否 | NOS 文件存储场景名,默认值为 V2NIMStorageSceneConfig.DEFAULT_IM 对应的场景名。若使用自定义的存储场景,需要先调用 addCustomStorageScene 添加自定义存储场景。 |
width |
Integer | 否 | 图片宽度,单位为像素。 |
height |
Integer | 否 | 图片高度,单位为像素。 |
iOS
Objective-C+ (V2NIMMessage *)createImageMessage:(NSString *)imagePath
name:(nullable NSString *)name
sceneName:(nullable NSString *)sceneName
width:(int)width
height:(int)height;
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
imagePath |
NSString * | 是 | 图片文件地址。 |
name |
NSString * | 否 | 图片文件显示名称,可不同于文件名。 |
sceneName |
NSString * | 否 | NOS 文件存储场景名,默认值为 V2NIMStorageSceneConfig.DEFAULT_IM 对应的场景名。若使用自定义的存储场景,需要先调用 addCustomStorageScene 添加自定义存储场景。 |
width |
int | 否 | 图片宽度,单位为像素。 |
height |
int | 否 | 图片高度,单位为像素。 |
macOS/Windows
C++static nstd::optional<V2NIMMessage> createImageMessage(nstd::string imagePath,
nstd::string name,
nstd::string sceneName,
uint32_t width,
uint32_t height);
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
imagePath |
nstd::string | 是 | 图片文件地址。 |
name |
nstd::string | 否 | 图片文件显示名称,可不同于文件名。 |
sceneName |
nstd::string | 否 | NOS 文件存储场景名,默认值为 V2NIMStorageSceneConfig.DEFAULT_IM 对应的场景名。若使用自定义的存储场景,需要先调用 addCustomStorageScene 添加自定义存储场景。 |
width |
uint32_t | 否 | 图片宽度,单位为像素。 |
height |
uint32_t | 否 | 图片高度,单位为像素。 |
Web/uni-app/小程序
TypeScriptcreateImageMessage(imageObj: string | File, name?: string, sceneName?: string, width?: number, height?: number): V2NIMMessage
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
imageObj |
Web File/string | 是 | File 对象。 |
name |
string | 否 | 图片文件显示名称,可不同于文件名。 |
sceneName |
string | 否 | NOS 文件存储场景名,默认值为 V2NIMStorageSceneConfig.DEFAULT_IM 对应的场景名。若使用自定义的存储场景,需要先调用 addCustomStorageScene 添加自定义存储场景。 |
width |
number | 否 | 图片宽度,单位为像素。 |
height |
number | 否 | 图片高度,单位为像素。 |
Node.js/Electron
TypeScriptcreateImageMessage(imagePath, name, sceneName, width, height): null | V2NIMMessage
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
imagePath |
nstd::string | 是 | 图片文件地址。 |
name |
nstd::string | 否 | 图片文件显示名称,可不同于文件名。 |
sceneName |
nstd::string | 否 | NOS 文件存储场景名,默认值为 V2NIMStorageSceneConfig.DEFAULT_IM 对应的场景名。若使用自定义的存储场景,需要先调用 addCustomStorageScene 添加自定义存储场景。 |
width |
uint32_t | 否 | 图片宽度,单位为像素。 |
height |
uint32_t | 否 | 图片高度,单位为像素。 |
HarmonyOS
TypeScriptcreateImageMessage(imagePath: string, name?: string, sceneName?: string, width?: number, height?: number): Promise<V2NIMMessage>
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
imagePath |
string | 是 | 图片文件地址。 |
name |
string | 否 | 图片文件显示名称,可不同于文件名。 |
sceneName |
string | 否 | NOS 文件存储场景名,默认值为 V2NIMStorageSceneConfig.DEFAULT_IM 对应的场景名。若使用自定义的存储场景,需要先调用 addCustomStorageScene 添加自定义存储场景。 |
width |
number | 否 | 图片宽度,单位为像素。 |
height |
number | 否 | 图片高度,单位为像素。 |
示例代码
Android
JavaV2NIMMessage v2ImageMessage = V2NIMMessageCreator.createImageMessage(imagePath, name, sceneName, width, height);
iOS
Objective-CNSString *imagePath = @ "文件沙盒路径";
V2NIMMessage *message = [V2NIMMessageCreator createImageMessage:imagePath
name:@"imageName"
sceneName:@"nim_default_im"
width:200
height:200];
macOS/Windows
C++auto imageMessage = V2NIMMessageCreator::createImageMessage("imagePath", "imageName", V2NIM_STORAGE_SCENE_NAME_DEFAULT_IM, 100,
100); if(!imageMessage) {
// create image message failed
}
Web/uni-app/小程序
TypeScripttry {
const message = nim.V2NIMMessageCreator.createImageMessage(document.getElementById('fileInputId').files[0])
} catch(err) {
// todo error
}
Node.js/Electron
TypeScripttry {
const message = v2.messageCreator.createImageMessage(imagePath, name, sceneName, width, height)
} catch(err) {
// todo error
}
HarmonyOS
TypeScripttry {
const imagePath = "沙盒路径"
const message = nim.messageCreator.createImageMessage(imagePath)
} catch(err) {
// todo error
}
返回参数
已创建的消息对象 V2NIMMessage
createAudioMessage
接口描述
创建一条语音消息。
- 在登录后、发送消息前调用该方法。
- 该方法为同步。
参数说明
Android
Javapublic static V2NIMMessage createAudioMessage(String audioPath, String name, String sceneName, Integer duration)
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
audioPath |
String | 是 | 语音文件地址。 |
name |
String | 否 | 语音文件显示名称,可不同于文件名。 |
sceneName |
String | 否 | NOS 文件存储场景名,默认值为 V2NIMStorageSceneConfig.DEFAULT_IM 对应的场景名。若使用自定义的存储场景,需要先调用 addCustomStorageScene 添加自定义存储场景。 |
duration |
Integer | 是 | 语音文件时长,单位为毫秒。 |
iOS
Objective-C+ (V2NIMMessage *)createAudioMessage:(NSString *)audioPath
name:(nullable NSString *)name
sceneName:(nullable NSString *)sceneName
duration:(int)duration;
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
audioPath |
NSString * | 是 | 语音文件地址。 |
name |
NSString * | 否 | 语音文件显示名称,可不同于文件名。 |
sceneName |
NSString * | 否 | NOS 文件存储场景名,默认值为 V2NIMStorageSceneConfig.DEFAULT_IM 对应的场景名。若使用自定义的存储场景,需要先调用 addCustomStorageScene 添加自定义存储场景。 |
duration |
int | 是 | 语音文件时长,单位为毫秒。 |
macOS/Windows
C++static nstd::optional<V2NIMMessage> createAudioMessage(nstd::string audioPath, nstd::string name, nstd::string sceneName, uint32_t duration);
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
audioPath |
nstd::string | 是 | 语音文件地址。 |
name |
nstd::string | 否 | 语音文件显示名称,可不同于文件名。 |
sceneName |
nstd::string | 否 | NOS 文件存储场景名,默认值为 V2NIMStorageSceneConfig.DEFAULT_IM 对应的场景名。若使用自定义的存储场景,需要先调用 addCustomStorageScene 添加自定义存储场景。 |
duration |
uint32_t | 是 | 语音文件时长,单位为毫秒。 |
Web/uni-app/小程序
TypeScriptcreateAudioMessage(audioObj: string | File, name?: string, sceneName?: string, duration?: number): V2NIMMessage
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
audioObj |
Web File/string | 是 | File 对象。 |
name |
string | 否 | 语音文件显示名称,可不同于文件名。 |
sceneName |
string | 否 | NOS 文件存储场景名,默认值为 V2NIMStorageSceneConfig.DEFAULT_IM 对应的场景名。若使用自定义的存储场景,需要先调用 addCustomStorageScene 添加自定义存储场景。 |
duration |
number | 是 | 语音文件时长,单位为毫秒。 |
Node.js/Electron
TypeScriptcreateAudioMessage(audioPath, name, sceneName, duration): null | V2NIMMessage
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
audioPath |
nstd::string | 是 | 语音文件地址。 |
name |
nstd::string | 否 | 语音文件显示名称,可不同于文件名。 |
sceneName |
nstd::string | 否 | NOS 文件存储场景名,默认值为 V2NIMStorageSceneConfig.DEFAULT_IM 对应的场景名。若使用自定义的存储场景,需要先调用 addCustomStorageScene 添加自定义存储场景。 |
duration |
uint32_t | 是 | 语音文件时长,单位为毫秒。 |
HarmonyOS
TypeScriptcreateAudioMessage(audioPath: string, name?: string, sceneName?: string, duration?: number): Promise<V2NIMMessage>
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
audioPath |
string | 是 | 语音文件地址。 |
name |
string | 否 | 语音文件显示名称,可不同于文件名。 |
sceneName |
string | 否 | NOS 文件存储场景名,默认值为 V2NIMStorageSceneConfig.DEFAULT_IM 对应的场景名。若使用自定义的存储场景,需要先调用 addCustomStorageScene 添加自定义存储场景。 |
duration |
number | 是 | 语音文件时长,单位为毫秒。 |
示例代码
Android
JavaV2NIMMessage v2AudioMessage = V2NIMMessageCreator.createAudioMessage(audioPath, name, sceneName, duration);
iOS
Objective-CNSString *audioPath = @"文件沙盒路径";
V2NIMMessage *message = [V2NIMMessageCreator createAudioMessage:audioPath
name:@"audioName"
sceneName:@"nim_default_im"
duration:2];
macOS/Windows
C++auto audioMessage = V2NIMMessageCreator::createAudioMessage("audioPath", "audioName", V2NIM_STORAGE_SCENE_NAME_DEFAULT_IM, 100);
if(!audioMessage) {
// create audio message failed
}
Web/uni-app/小程序
TypeScripttry {
const message = nim.V2NIMMessageCreator.createAudioMessage(document.getElementById('fileInputId').files[0])
} catch(err) {
// todo error
}
Node.js/Electron
TypeScripttry {
const message = v2.messageCreator.createAudioMessage(audioPath, name, sceneName, duration)
} catch(err) {
// todo error
}
HarmonyOS
TypeScripttry {
const audioPath ="文件沙盒路径";
const message = nim.messageCreator.createAudioMessage(audioPath)
} catch(err) {
// todo error
}
返回参数
已创建的消息对象 V2NIMMessage
createVideoMessage
接口描述
创建一条视频消息。
- 在登录后、发送消息前调用该方法。
- 该方法为同步。
参数说明
Android
Javapublic static V2NIMMessage createVideoMessage(String videoPath, String name, String sceneName, Integer duration, Integer width, Integer height)
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
videoPath |
String | 是 | 视频文件地址。 |
name |
String | 否 | 视频文件显示名称,可不同于文件名。 |
sceneName |
String | 否 | NOS 文件存储场景名,默认值为 V2NIMStorageSceneConfig.DEFAULT_IM 对应的场景名。若使用自定义的存储场景,需要先调用 addCustomStorageScene 添加自定义存储场景。 |
duration |
Integer | 是 | 视频文件时长,单位为毫秒。 |
width |
Integer | 否 | 视频宽度,单位为像素。 |
height |
Integer | 否 | 视频高度,单位为像素。 |
iOS
Objective-C+ (V2NIMMessage *)createVideoMessage:(NSString *)videoPath
name:(nullable NSString *)name
sceneName:(nullable NSString *)sceneName
duration:(int)duration
width:(int)width
height:(int)height;
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
videoPath |
NSString * | 是 | 视频文件地址。 |
name |
NSString * | 否 | 视频文件显示名称,可不同于文件名。 |
sceneName |
NSString * | 否 | NOS 文件存储场景名,默认值为 V2NIMStorageSceneConfig.DEFAULT_IM 对应的场景名。若使用自定义的存储场景,需要先调用 addCustomStorageScene 添加自定义存储场景。 |
duration |
int | 是 | 视频文件时长,单位为毫秒。 |
width |
int | 否 | 视频宽度,单位为像素。 |
height |
int | 否 | 视频高度,单位为像素。 |
macOS/Windows
C++static nstd::optional<V2NIMMessage> createVideoMessage(nstd::string videoPath,
nstd::string name,
nstd::string sceneName,
uint32_t duration,
uint32_t width,
uint32_t height);
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
videoPath |
nstd::string | 是 | 视频文件地址。 |
name |
nstd::string | 否 | 视频文件显示名称,可不同于文件名。 |
sceneName |
nstd::string | 否 | NOS 文件存储场景名,默认值为 V2NIMStorageSceneConfig.DEFAULT_IM 对应的场景名。若使用自定义的存储场景,需要先调用 addCustomStorageScene 添加自定义存储场景。 |
duration |
uint32_t | 是 | 视频文件时长,单位为毫秒。 |
width |
uint32_t | 否 | 视频宽度,单位为像素。 |
height |
uint32_t | 否 | 视频高度,单位为像素。 |
Web/uni-app/小程序
TypeScriptcreateVideoMessage(videoObj: string | File, name?: string, sceneName?: string, duration?: number, width?: number, height?: number): V2NIMMessage
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
videoObj |
Web File/string | 是 | File 对象。 |
name |
string | 否 | 视频文件显示名称,可不同于文件名。 |
sceneName |
string | 否 | NOS 文件存储场景名,默认值为 V2NIMStorageSceneConfig.DEFAULT_IM 对应的场景名。若使用自定义的存储场景,需要先调用 addCustomStorageScene 添加自定义存储场景。 |
duration |
number | 是 | 视频文件时长,单位为毫秒。 |
width |
number | 否 | 视频宽度,单位为像素。 |
height |
number | 否 | 视频高度,单位为像素。 |
Node.js/Electron
TypeScriptcreateVideoMessage(videoPath, name, sceneName, duration, width, height): null | V2NIMMessage
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
videoPath |
nstd::string | 是 | 视频文件地址。 |
name |
nstd::string | 否 | 视频文件显示名称,可不同于文件名。 |
sceneName |
nstd::string | 否 | NOS 文件存储场景名,默认值为 V2NIMStorageSceneConfig.DEFAULT_IM 对应的场景名。若使用自定义的存储场景,需要先调用 addCustomStorageScene 添加自定义存储场景。 |
duration |
uint32_t | 是 | 视频文件时长,单位为毫秒。 |
width |
uint32_t | 否 | 视频宽度,单位为像素。 |
height |
uint32_t | 否 | 视频高度,单位为像素。 |
HarmonyOS
TypeScriptcreateVideoMessage(videoPath: string, name?: string, sceneName?: string, duration?: number, width?: number, height?: number): Promise<V2NIMMessage>
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
videoPath |
Web File/string | 是 | 视频文件地址。 |
name |
string | 否 | 视频文件显示名称,可不同于文件名。 |
sceneName |
string | 否 | NOS 文件存储场景名,默认值为 V2NIMStorageSceneConfig.DEFAULT_IM 对应的场景名。若使用自定义的存储场景,需要先调用 addCustomStorageScene 添加自定义存储场景。 |
duration |
number | 是 | 视频文件时长,单位为毫秒。 |
width |
number | 否 | 视频宽度,单位为像素。 |
height |
number | 否 | 视频高度,单位为像素。 |
示例代码
Android
JavaV2NIMMessage v2VideoMessage = V2NIMMessageCreator.createVideoMessage(videoPath, name, sceneName, duration, width, height);
iOS
Objective-CNSString *videoPath = @"文件沙盒路径";
V2NIMMessage *message = [V2NIMMessageCreator createVideoMessage:videoPath
name:@"name"
sceneName:@"nim_default_im"
duration:15
width:200
height:200];
macOS/Windows
C++auto videoMessage = V2NIMMessageCreator::createVideoMessage("videoPath", "videoName", V2NIM_STORAGE_SCENE_NAME_DEFAULT_IM, 100, 100, 100);
if (!videoMessage) {
// create video message failed
}
Web/uni-app/小程序
TypeScripttry {
const message = nim.V2NIMMessageCreator.createVideoMessage(document.getElementById('fileInputId').files[0])
} catch(err) {
// todo error
}
Node.js/Electron
TypeScripttry {
const message = v2.messageCreator.createVideoMessage(videoPath, name, sceneName, duration, width, height)
} catch(err) {
// todo error
}
HarmonyOS
TypeScripttry {
const videoPath = "沙盒路径"
const message = nim.messageCreator.createVideoMessage(videoPath)
} catch(err) {
// todo error
}
返回参数
已创建的消息对象 V2NIMMessage
createFileMessage
接口描述
创建一条文件消息。
- 在登录后、发送消息前调用该方法。
- 该方法为同步。
参数说明
Android
Javapublic static V2NIMMessage createFileMessage(String filePath, String name, String sceneName)
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
filePath |
String | 是 | 文件地址。 |
name |
String | 否 | 文件显示名称,可不同于文件名。 |
sceneName |
String | 否 | NOS 文件存储场景名,默认值为 V2NIMStorageSceneConfig.DEFAULT_IM 对应的场景名。若使用自定义的存储场景,需要先调用 addCustomStorageScene 添加自定义存储场景。 |
iOS
Objective-C+ (V2NIMMessage *)createFileMessage:(NSString *)filePath
name:(nullable NSString *)name
sceneName:(nullable NSString *)sceneName;
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
filePath |
NSString * | 是 | 文件地址。 |
name |
NSString * | 否 | 文件显示名称,可不同于文件名。 |
sceneName |
NSString * | 否 | NOS 文件存储场景名,默认值为 V2NIMStorageSceneConfig.DEFAULT_IM 对应的场景名。若使用自定义的存储场景,需要先调用 addCustomStorageScene 添加自定义存储场景。 |
macOS/Windows
C++static nstd::optional<V2NIMMessage> createFileMessage(nstd::string filePath, nstd::string name, nstd::string sceneName);
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
filePath |
nstd::string | 是 | 文件地址。 |
name |
nstd::string | 否 | 文件显示名称,可不同于文件名。 |
sceneName |
nstd::string | 否 | NOS 文件存储场景名,默认值为 V2NIMStorageSceneConfig.DEFAULT_IM 对应的场景名。若使用自定义的存储场景,需要先调用 addCustomStorageScene 添加自定义存储场景。 |
Web/uni-app/小程序
TypeScriptcreateFileMessage(fileObj: string | File, name?: string, sceneName?: string): V2NIMMessage
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
fileObj |
Web File/string | 是 | File 对象。 |
name |
string | 否 | 文件显示名称,可不同于文件名。 |
sceneName |
string | 否 | NOS 文件存储场景名,默认值为 V2NIMStorageSceneConfig.DEFAULT_IM 对应的场景名。若使用自定义的存储场景,需要先调用 addCustomStorageScene 添加自定义存储场景。 |
Node.js/Electron
TypeScriptcreateFileMessage(filePath, name, sceneName): null | V2NIMMessage
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
fileObj |
Web File/string | 是 | File 对象。 |
name |
string | 否 | 文件显示名称,可不同于文件名。 |
sceneName |
string | 否 | NOS 文件存储场景名,默认值为 V2NIMStorageSceneConfig.DEFAULT_IM 对应的场景名。若使用自定义的存储场景,需要先调用 addCustomStorageScene 添加自定义存储场景。 |
HarmonyOS
TypeScriptcreateFileMessage(filePath: string, name?: string, sceneName?: string): Promise<V2NIMMessage>
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
filePath |
string | 是 | 文件地址。 |
name |
string | 否 | 文件显示名称,可不同于文件名。 |
sceneName |
string | 否 | NOS 文件存储场景名,默认值为 V2NIMStorageSceneConfig.DEFAULT_IM 对应的场景名。若使用自定义的存储场景,需要先调用 addCustomStorageScene 添加自定义存储场景。 |
示例代码
Android
JavaV2NIMMessage v2FileMessage = V2NIMMessageCreator.createFileMessage(filePath, name, sceneName);
iOS
Objective-CNSString *filePath = @"文件沙盒路径";
V2NIMMessage *message = [V2NIMMessageCreator createFileMessage:filePath
name:@"name"
sceneName:@"nim_default_im"];
macOS/Windows
C++auto fileMessage = V2NIMMessageCreator::createFileMessage("filePath", "fileName", V2NIM_STORAGE_SCENE_NAME_DEFAULT_IM);
if(!fileMessage) {
// create file message failed
}
Web/uni-app/小程序
TypeScripttry {
const message = nim.V2NIMMessageCreator.createFileMessage(document.getElementById('fileInputId').files[0])
} catch(err) {
// todo error
}
Node.js/Electron
TypeScripttry {
const message = v2.messageCreator.createFileMessage(filePath, name, sceneName)
} catch(err) {
// todo error
}
HarmonyOS
TypeScripttry {
const filePath = "沙盒路径"
const message = nim.messageCreator.createFileMessage(filePath)
} catch(err) {
// todo error
}
}
返回参数
已创建的消息对象 V2NIMMessage
createLocationMessage
接口描述
创建一条地理位置消息。
- 在登录后、发送消息前调用该方法。
- 该方法为同步。
参数说明
Android
Javapublic static V2NIMMessage createLocationMessage(double latitude, double longitude, String address)
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
latitude |
double | 是 | 位置维度。 |
longitude |
double | 是 | 位置经度。 |
address |
String | 是 | 位置描述信息。 |
iOS
Objective-C+ (V2NIMMessage *)createLocationMessage:(double)latitude
longitude:(double)longitude
address:(NSString *)address;
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
latitude |
double | 是 | 位置维度。 |
longitude |
double | 是 | 位置经度。 |
address |
NSString * | 是 | 位置描述信息。 |
macOS/Windows
C++static nstd::optional<V2NIMMessage> createLocationMessage(double latitude, double longitude, nstd::string address);
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
latitude |
double | 是 | 位置维度。 |
longitude |
double | 是 | 位置经度。 |
address |
nstd::string | 是 | 位置描述信息。 |
Web/uni-app/小程序
TypeScriptcreateLocationMessage(latitude: number, longitude: number, address: string): V2NIMMessage
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
latitude |
number | 是 | 位置维度。 |
longitude |
number | 是 | 位置经度。 |
address |
string | 是 | 位置描述信息。 |
Node.js/Electron
TypeScriptcreateLocationMessage(latitude, longitude, address): null | V2NIMMessage
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
latitude |
number | 是 | 位置维度。 |
longitude |
number | 是 | 位置经度。 |
address |
string | 是 | 位置描述信息。 |
HarmonyOS
TypeScriptcreateLocationMessage(latitude: number, longitude: number, address: string): V2NIMMessage
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
latitude |
number | 是 | 位置维度。 |
longitude |
number | 是 | 位置经度。 |
address |
string | 是 | 位置描述信息。 |
示例代码
Android
JavaV2NIMMessage v2LocationMessage = V2NIMMessageCreator.createLocationMessage(latitude,longitude, address);
iOS
Objective-CV2NIMMessage *message = [V2NIMMessageCreator createLocationMessage:37.787359
longitude:-122.408227
address:@"杭州滨江区网商路 399 号"];
macOS/Windows
C++auto locationMessage = V2NIMMessageCreator::createLocationMessage(100, 100, "address");
if(!locationMessage) {
// create location message failed
}
Web/uni-app/小程序
TypeScripttry {
const message = nim.V2NIMMessageCreator.createLocationMessage(30.25, 120.166664, "HangZhou")
} catch(err) {
// todo error
}
Node.js/Electron
TypeScripttry {
const message = v2.messageCreator.createLocationMessage(latitude, longitude, address)
} catch(err) {
// todo error
}
HarmonyOS
TypeScripttry {
const message = nim.messageCreator.createLocationMessage(30.25, 120.166664, "HangZhou")
} catch(err) {
// todo error
}
返回参数
已创建的消息对象 V2NIMMessage
createCustomMessage
接口描述
创建一条自定义消息。
- 已注册一个自定义消息解析器。请参考 自定义消息收发。
- 在登录后、发送消息前调用该方法。
- 该方法为同步。
参数说明
Android
Javapublic static V2NIMMessage createCustomMessage(String text, String rawAttachment)
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
text |
String | 是 | 自定义消息文本内容,可用于推送及状态栏消息提醒的展示。 |
rawAttachment |
String | 是 | 自定义消息附件对象。SDK 会将 JSON 格式的自定义消息解析为附件对象,用于自定义消息收发。长度上限为 4096 字节。 |
iOS
Objective-C+ (V2NIMMessage *)createCustomMessage:(NSString *)text
rawAttachment:(NSString *)rawAttachment;
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
text |
NSString * | 是 | 自定义消息文本内容,可用于推送及状态栏消息提醒的展示。 |
rawAttachment |
NSString * | 是 | 自定义消息附件对象。SDK 会将 JSON 格式的自定义消息解析为附件对象,用于自定义消息收发。长度上限为 4096 字节。 |
macOS/Windows
C++static nstd::optional<V2NIMMessage> createCustomMessage(nstd::string text, nstd::string rawAttachment);
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
text |
nstd::string | 是 | 自定义消息文本内容,可用于推送及状态栏消息提醒的展示。 |
rawAttachment |
nstd::string | 是 | 自定义消息附件对象。SDK 会将 JSON 格式的自定义消息解析为附件对象,用于自定义消息收发。长度上限为 4096 字节。 |
Web/uni-app/小程序
TypeScriptcreateCustomMessage(text: string, rawAttachment: string): V2NIMMessage
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
text |
string | 是 | 自定义消息文本内容,可用于推送及状态栏消息提醒的展示。 |
rawAttachment |
string | 是 | 自定义消息附件对象。SDK 会将 JSON 格式的自定义消息解析为附件对象,用于自定义消息收发。长度上限为 4096 字节。 |
Node.js/Electron
TypeScriptcreateCustomMessage(text, rawAttachment): null | V2NIMMessage
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
text |
string | 是 | 自定义消息文本内容,可用于推送及状态栏消息提醒的展示。 |
rawAttachment |
string | 是 | 自定义消息附件对象。SDK 会将 JSON 格式的自定义消息解析为附件对象,用于自定义消息收发。长度上限为 4096 字节。 |
HarmonyOS
TypeScriptcreateCustomMessage(text: string, rawAttachment: string): V2NIMMessage
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
text |
string | 是 | 自定义消息文本内容,可用于推送及状态栏消息提醒的展示。 |
rawAttachment |
string | 是 | 自定义消息附件对象。SDK 会将 JSON 格式的自定义消息解析为附件对象,用于自定义消息收发。长度上限为 4096 字节。 |
示例代码
Android
JavaV2NIMMessage v2CustomMessage = V2NIMMessageCreator.createCustomMessage(text, rawAttachment);
iOS
Objective-CV2NIMessage *message = [V2NIMMessageCreator createCustomMessage:@"text"
rawAttachment:@"custoom JSON String"];
macOS/Windows
C++auto customMessage = V2NIMMessageCreator::createCustomMessage("text", R"({"key": "value"})");
if(!customMessage) {
// create custom message failed
}
Web/uni-app/小程序
TypeScripttry {
const message = nim.V2NIMMessageCreator.createCustomMessage("text", JSON.stringify({
strategy: 1
}))
} catch(err) {
// todo error
}
Node.js/Electron
TypeScripttry {
const message = v2.messageCreator.createCustomMessage(text, rawAttachment)
} catch(err) {
// todo error
}
HarmonyOS
TypeScripttry {
const message = nim.messageCreator.createCustomMessage("text", JSON.stringify({
strategy: 1
}))
} catch(err) {
// todo error
}
返回参数
已创建的消息对象 V2NIMMessage
createForwardMessage
接口描述
创建一条转发消息。
- 转发的消息类型 不能为
V2NIM_MESSAGE_TYPE_NOTIFICATION(5)
、V2NIM_MESSAGE_TYPE_ROBOT(11)
、V2NIM_MESSAGE_TYPE_TIPS(10)
,V2NIM_MESSAGE_TYPE_AVCHAT(7)
。 - 转发的消息消息必须为发送成功的消息,消息状态必须为
V2NIMMessagesendingState.V2NIM_MESSAGE_SENDING_STATE_SUCCEEDED(1)
,消息内容与原消息相同。 - 在登录后、发送消息前调用该方法。
- 该方法为同步。
参数说明
Android
Javapublic static V2NIMMessage createForwardMessage(V2NIMMessage message)
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
message |
V2NIMMessage |
是 | 待转发的消息体。 |
iOS
Objective-C+ (V2NIMMessage *)createForwardMessage:(V2NIMMessage *)message;
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
message |
V2NIMMessage |
是 | 待转发的消息体。 |
macOS/Windows
C++static nstd::optional<V2NIMMessage> createForwardMessage(V2NIMMessage message);
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
message |
V2NIMMessage |
是 | 待转发的消息体。 |
Web/uni-app/小程序
TypeScriptcreateForwardMessage(message: V2NIMMessage): V2NIMMessage | null
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
message |
V2NIMMessage |
是 | 待转发的消息体。 |
Node.js/Electron
TypeScriptcreateForwardMessage(message): null | V2NIMMessage
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
message |
V2NIMMessage |
是 | 待转发的消息体。 |
HarmonyOS
TypeScriptcreateForwardMessage(message: V2NIMMessage): V2NIMMessage | null
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
message |
V2NIMMessage |
是 | 待转发的消息体。 |
示例代码
Android
Java// 被转发的消息
// V2NIMMessage v2Message = ;
V2NIMMessage v2ForwardMessage = V2NIMMessageCreator.createForwardMessage(v2Message);
iOS
Objective-CV2NIMMessage *message = [V2NIMMessageCreator createForwardMessage:originalMessage];
macOS/Windows
C++auto forwardMessage = V2NIMMessageCreator::createForwardMessage(message);
if(!forwardMessage) {
// create forward message failed
}
Web/uni-app/小程序
TypeScripttry {
const newMessage = nim.V2NIMMessageCreator.createForwardMessage(message)
} catch(err) {
// todo error
}
Node.js/Electron
TypeScripttry {
const message = v2.messageCreator.createForwardMessage(message)
} catch(err) {
// todo error
}
HarmonyOS
TypeScripttry {
const newMessage = nim.messageCreator.createForwardMessage(message)
} catch(err) {
// todo error
}
返回参数
已创建的消息对象 V2NIMMessage
createTipsMessage
接口描述
创建一条提示消息。
- 在登录后、发送消息前调用该方法。
- 该方法为同步。
参数说明
Android
Javapublic static V2NIMMessage createTipsMessage(String text)
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
text |
String | 是 | 提示消息内容。 |
iOS
Objective-C+ (V2NIMMessage *)createTipsMessage:(NSString *)text;
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
text |
NSString * | 是 | 提示消息内容。 |
macOS/Windows
C++static nstd::optional<V2NIMMessage> createTipsMessage(nstd::string text);
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
text |
nstd::string | 是 | 提示消息内容。 |
Web/uni-app/小程序
TypeScriptcreateTipsMessage(text: string): V2NIMMessage
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
text |
string | 是 | 提示消息内容。 |
Node.js/Electron
TypeScriptcreateTipsMessage(text): null | V2NIMMessage
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
text |
string | 是 | 提示消息内容。 |
HarmonyOS
TypeScriptcreateTipsMessage(text: string): V2NIMMessage
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
text |
string | 是 | 提示消息内容。 |
示例代码
Android
JavaV2NIMMessage v2TipMessage = V2NIMMessageCreator.createTipsMessage("tip content");
iOS
Objective-CV2NIMessage *message = [V2NIMMessageCreator createTipsMessage:"tip text"];
macOS/Windows
C++auto tipMessage = V2NIMMessageCreator::createTipsMessage("text");
if(!tipMessage) {
// create tip message failed
}
Web/uni-app/小程序
TypeScripttry {
const newMessage = nim.V2NIMMessageCreator.createTipsMessage("hint")
} catch(err) {
// todo error
}
Node.js/Electron
TypeScripttry {
const newMessage = v2.messageCreator.createTipsMessage("hint")
} catch(err) {
// todo error
}
HarmonyOS
TypeScripttry {
const newMessage = nim.messageCreator.createTipsMessage("hint")
} catch(err) {
// todo error
}
返回参数
已创建的消息对象 V2NIMMessage
createCallMessage
接口描述
创建一条话单消息。
- 在登录后、发送消息前调用该方法。
- 该方法为同步。
参数说明
Android
Javapublic static V2NIMMessage createCallMessage(int type, String channelId, int status, List<V2NIMMessageCallDuration> durations, String text);
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
type |
Integer | 是 | 话单类型,业务侧可自定义,网易云信不校验内容。建议设置为: |
channelId |
String | 是 | 话单频道 ID,网易云信不校验内容。 |
status |
Integer | 是 | 通话状态,业务侧可自定义状态,网易云信不校验内容。建议设置为: |
durations |
List<V2NIMMessageCallDuration> | 否 | 通话成员时长列表,网易云信不校验内容。 |
text |
String | 否 | 话单描述。 |
iOS
Objective-C+ (V2NIMMessage *)createCallMessage:(NSString *)text
type:(NSInteger)type
channelId:(NSString *)channelId
status:(NSInteger)status
durations:(NSArray <V2NIMMessageCallDuration *>*)durations;
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
type |
NSInteger | 是 | 话单类型,业务侧可自定义,网易云信不校验内容。建议设置为: |
channelId |
NSString * | 是 | 话单频道 ID,网易云信不校验内容。 |
status |
NSInteger | 是 | 通话状态,业务侧可自定义状态,网易云信不校验内容。建议设置为: |
durations |
NSArray <V2NIMMessageCallDuration > | 否 | 通话成员时长列表,网易云信不校验内容。 |
text |
NSString * | 否 | 话单描述。 |
macOS/Windows
C++nstd::optional< V2NIMMessage > v2::V2NIMMessageCreator::createCallMessage(int32_t type, const nstd::string & channelId, int32_t status, const nstd::vector< V2NIMMessageCallDuration > & durations, const nstd::string & text )
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
type |
int32_t | 是 | 话单类型,业务侧可自定义,网易云信不校验内容。建议设置为: |
channelId |
nstd::string | 是 | 话单频道 ID,网易云信不校验内容。 |
status |
int32_t | 是 | 通话状态,业务侧可自定义状态,网易云信不校验内容。建议设置为: |
durations |
nstd::vector<V2NIMMessageCallDuration> | 否 | 通话成员时长列表,网易云信不校验内容。 |
text |
nstd::string | 否 | 话单描述。 |
Web/uni-app/小程序
TypeScriptcreateCallMessage(type: number, channelId: string, status: number, durations: V2NIMMessageCallDuration[], text?: string): V2NIMMessage
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
type |
number | 是 | 话单类型,业务侧可自定义,网易云信不校验内容。建议设置为: |
channelId |
string | 是 | 话单频道 ID,网易云信不校验内容。 |
status |
number | 是 | 通话状态,业务侧可自定义状态,网易云信不校验内容。建议设置为: |
durations |
V2NIMMessageCallDuration[] | 否 | 通话成员时长列表,网易云信不校验内容。 |
text |
string | 否 | 话单描述。 |
Node.js/Electron
TypeScriptcreateCallMessage(callType, channelId, status, durations, text): V2NIMMessage
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
type |
int32_t | 是 | 话单类型,业务侧可自定义,网易云信不校验内容。建议设置为: |
channelId |
nstd::string | 是 | 话单频道 ID,网易云信不校验内容。 |
status |
int32_t | 是 | 通话状态,业务侧可自定义状态,网易云信不校验内容。建议设置为: |
durations |
nstd::vector<V2NIMMessageCallDuration> | 否 | 通话成员时长列表,网易云信不校验内容。 |
text |
nstd::string | 否 | 话单描述。 |
HarmonyOS
TypeScriptcreateCallMessage(type: number, channelId: string, status: number, durations: V2NIMMessageCallDuration[], text?: string): V2NIMMessage
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
type |
number | 是 | 话单类型,业务侧可自定义,网易云信不校验内容。建议设置为: |
channelId |
string | 是 | 话单频道 ID,网易云信不校验内容。 |
status |
number | 是 | 通话状态,业务侧可自定义状态,网易云信不校验内容。建议设置为: |
durations |
V2NIMMessageCallDuration[] | 否 | 通话成员时长列表,网易云信不校验内容。 |
text |
string | 否 | 话单描述。 |
示例代码
Android
Javaint type = 1;
String channelId = "123";
int status = 1;
V2NIMMessageCallDuration duration = new V2NIMMessageCallDuration("test", 100);
List<V2NIMMessageCallDuration> durations = new ArrayList<>();
durations.add(duration);
V2NIMMessageCreator.createCallMessage(type, channelId, status, durations,"text");
iOS
Objective-Cdurations.accountId = @"accountId";
durations.duration = 60;
[V2NIMMessageCreator createCallMessage:@"text" type:1 channelId:@"channelId" status:1 durations:@[durations]];2NIMMessage *v2msg = [V2NIMMessageCreator createCallMessage:@"text" rawAttachment:@"rawAttachment"];
macOS/Windows
C++auto callMessage = V2NIMMessageCreator::createCallMessage(1, "channelId", 1, {{"account1", 100}, {"account2", 200}}, "text");
if(!callMessage) {
// create call message failed
}
Web/uni-app/小程序
TypeScriptnim.V2NIMMessageCreator.createCallMessage(
1,
"Channel_ID",
1,
[{
accountId: "AccountID", duration: 5000
}]
)
Node.js/Electron
TypeScriptv2.messageCreator.createCallMessage(
1,
"Channel_ID",
1,
[{
accountId: "AccountID", duration: 5000
}]
)
HarmonyOS
TypeScriptconst callMessage: V2NIMMessage = messageCreator.createCallMessage(1, "Channel_ID", 3, [
{ accountId: "accid_1", duration: 1 },
{ accountId: "accid_2", duration: 2 },
{ accountId: "accid_3", duration: 3 },
{ accountId: "accid_4", duration: 4 }
], 'text')
返回参数
已创建的消息对象 V2NIMMessage
createCustomMessageWithAttachment
接口描述
构造一条自定义消息。
- 在登录后、发送消息前调用该方法。
- 该方法为同步。
参数说明
Android
Javapublic static V2NIMMessage createCustomMessageWithAttachment(V2NIMMessageCustomAttachment attachment,int subType) {
V2NIMMessageImpl message = createV2Message(V2NIMMessageType.V2NIM_MESSAGE_TYPE_CUSTOM);
message.setAttachment(attachment);
if (subType > 0) {
message.setSubType(subType);
}
return message;
}
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
attachment |
V2NIMMessageCustomAttachment | 是 | 需要发送的自定义消息的附件。 |
subType |
int | 否 | 可作为具体的自定义子类型区分 type 字段。需要传入大于等于 0 的值,若小于 0 ,则默认为 0。 |
iOS
Objective-C+ (V2NIMMessage *)createCustomMessageWithAttachment:(V2NIMMessageCustomAttachment *)attachment
subType:(int)subType;
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
attachment |
V2NIMMessageCustomAttachment | 是 | 需要发送的自定义消息的附件。 |
subType |
int | 否 | 可作为具体的自定义子类型区分 type 字段。需要传入大于等于 0 的值,若小于 0 ,则默认为 0。 |
macOS/Windows
C++virtual nstd::optional<V2NIMMessage> createCustomMessageWithAttachment(nstd::shared_ptr<V2NIMMessageCustomAttachment> attachment,
int32_t subType) = 0;
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
attachment |
nstd::shared_ptr<V2NIMMessageCustomAttachment> | 是 | 需要发送的自定义消息的附件。 |
subType |
int32_t | 否 | 可作为具体的自定义子类型区分 type 字段。需要传入大于等于 0 的值,若小于 0 ,则默认为 0。 |
Web/uni-app/小程序
TypeScriptcreateCustomMessageWithAttachment(attachment: V2NIMMessageCustomAttachment, subType?: number): V2NIMMessage
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
attachment |
V2NIMMessageCustomAttachment | 是 | 需要发送的自定义消息的附件。 |
subType |
number | 否 | 可作为具体的自定义子类型区分 type 字段。需要传入大于等于 0 的值,若小于 0 ,则默认为 0。 |
示例代码
Android
JavaV2NIMMessageCustomAttachment attachment = new V2Test1CustomAttachment();
int subtype = 1;
V2NIMMessageCreator.createCustomMessageWithAttachment(attachment,subtype);
iOS
Objective-C@interface MyAttachment: V2NIMMessageCustomAttachment
@end
@implementation MyAttachment
- (void)parse:(NSString *)attach
{
// your code
}
@end
MyAttachment *attachment = [[MyAttachment alloc] init];
V2NIMMessage *message = [V2NIMMessageCreator createCustomMessageWithAttachment:attachment subType:1];
macOS/Windows
C++struct V2NIMMessageTempCustomAttachment : public V2NIMMessageCustomAttachment {
nstd::shared_ptr<V2NIMMessageAttachment> parse(const nstd::string& attach) override {
// parse attach
}
}
nstd::shared_ptr<V2NIMMessageTempCustomAttachment> attachment = nstd::make_shared<V2NIMMessageTempCustomAttachment>();
int32_t subType = 1;
auto customMessage = V2NIMMessageCreator::createCustomMessageWithAttachment(attachment, subType);
Web/uni-app/小程序
TypeScriptconst attachment = nim.V2NIMMessageCreator.createCustomMessageWithAttachment(
{
"raw": "{\"test\":999}",
"test": 999,
},
1
)
返回参数
已创建的自定义消息对象 V2NIMMessage
此文档是否对你有帮助?