消息构建
更新时间: 2024/09/06 17:36:15
网易云信即时通讯 IM SDK(简称 NIM SDK)支持多种消息类型,助您快速实现多样化的消息业务场景。在进行消息收发等操作前,您需要先构建消息。
本文中消息均指会话内消息,适用于单聊、群组、超大群类型会话。更多消息相关功能请参考开发文档 消息概述。
支持平台
Android | iOS | macOS/Windows | Web/uni-app/小程序 | 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 | 创建一条话单消息 |
接口类
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 字符。 |
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
}
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 | 否 | V2NIMStorageSceneConfig.DEFAULT_IM 对应的场景名 |
NOS 文件存储场景名。若使用自定义的存储场景,需要先调用 addCustomStorageScene 添加自定义存储场景。 |
width |
Integer | 否 | null | 图片宽度,单位为像素。 |
height |
Integer | 否 | null | 图片高度,单位为像素。 |
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 * | 否 | V2NIMStorageSceneConfig.DEFAULT_IM 对应的场景名 |
NOS 文件存储场景名。若使用自定义的存储场景,需要先调用 addCustomStorageScene 添加自定义存储场景。 |
width |
int | 否 | null | 图片宽度,单位为像素。 |
height |
int | 否 | null | 图片高度,单位为像素。 |
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 | 否 | V2NIMStorageSceneConfig.DEFAULT_IM 对应的场景名 |
NOS 文件存储场景名。若使用自定义的存储场景,需要先调用 addCustomStorageScene 添加自定义存储场景。 |
width |
uint32_t | 否 | null | 图片宽度,单位为像素。 |
height |
uint32_t | 否 | null | 图片高度,单位为像素。 |
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 | 否 | V2NIMStorageSceneConfig.DEFAULT_IM 对应的场景名 |
NOS 文件存储场景名。若使用自定义的存储场景,需要先调用 addCustomStorageScene 添加自定义存储场景。 |
width |
number | 否 | null | 图片宽度,单位为像素。 |
height |
number | 否 | null | 图片高度,单位为像素。 |
HarmonyOS
TypeScriptcreateImageMessage(imagePath: string, name?: string, sceneName?: string, width?: number, height?: number): Promise<V2NIMMessage>
参数名称 | 类型 | 是否必填 | 默认值 | 说明 |
---|---|---|---|---|
imagePath |
string | 是 | - | 图片文件地址 |
name |
string | 否 | 文件名 | 图片文件显示名称,可不同于文件名。 |
sceneName |
string | 否 | V2NIMStorageSceneConfig.DEFAULT_IM 对应的场景名 |
NOS 文件存储场景名。若使用自定义的存储场景,需要先调用 addCustomStorageScene 添加自定义存储场景。 |
width |
number | 否 | null | 图片宽度,单位为像素。 |
height |
number | 否 | null | 图片高度,单位为像素。 |
示例代码
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
}
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 | 否 | null | 语音文件显示名称,可不同于文件名。 |
sceneName |
String | 否 | V2NIMStorageSceneConfig.DEFAULT_IM 对应的场景名 |
NOS 文件存储场景名。若使用自定义的存储场景,需要先调用 addCustomStorageScene 添加自定义存储场景。 |
duration |
Integer | 是 | null | 语音文件时长,单位为毫秒。 |
iOS
Objective-C+ (V2NIMMessage *)createAudioMessage:(NSString *)audioPath
name:(nullable NSString *)name
sceneName:(nullable NSString *)sceneName
duration:(int)duration;
参数名称 | 类型 | 是否必填 | 默认值 | 说明 |
---|---|---|---|---|
audioPath |
NSString * | 是 | - | 语音文件地址 |
name |
NSString * | 否 | null | 语音文件显示名称,可不同于文件名。 |
sceneName |
NSString * | 否 | V2NIMStorageSceneConfig.DEFAULT_IM 对应的场景名 |
NOS 文件存储场景名。若使用自定义的存储场景,需要先调用 addCustomStorageScene 添加自定义存储场景。 |
duration |
int | 是 | null | 语音文件时长,单位为毫秒。 |
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 | 否 | null | 语音文件显示名称,可不同于文件名。 |
sceneName |
nstd::string | 否 | V2NIMStorageSceneConfig.DEFAULT_IM 对应的场景名 |
NOS 文件存储场景名。若使用自定义的存储场景,需要先调用 addCustomStorageScene 添加自定义存储场景。 |
duration |
uint32_t | 是 | null | 语音文件时长,单位为毫秒。 |
Web/uni-app/小程序
TypeScriptcreateAudioMessage(audioObj: string | File, name?: string, sceneName?: string, duration?: number): V2NIMMessage
参数名称 | 类型 | 是否必填 | 默认值 | 说明 |
---|---|---|---|---|
audioObj |
Web File/string | 是 | - | File 对象。 |
name |
string | 否 | null | 语音文件显示名称,可不同于文件名。 |
sceneName |
string | 否 | V2NIMStorageSceneConfig.DEFAULT_IM 对应的场景名 |
NOS 文件存储场景名。若使用自定义的存储场景,需要先调用 addCustomStorageScene 添加自定义存储场景。 |
duration |
number | 是 | - | 语音文件时长,单位为毫秒。 |
HarmonyOS
TypeScriptcreateAudioMessage(audioPath: string, name?: string, sceneName?: string, duration?: number): Promise<V2NIMMessage>
参数名称 | 类型 | 是否必填 | 默认值 | 说明 |
---|---|---|---|---|
audioPath |
string | 是 | - | 语音文件地址 |
name |
string | 否 | null | 语音文件显示名称,可不同于文件名。 |
sceneName |
string | 否 | V2NIMStorageSceneConfig.DEFAULT_IM 对应的场景名 |
NOS 文件存储场景名。若使用自定义的存储场景,需要先调用 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
}
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 | 否 | null | 视频文件显示名称,可不同于文件名。 |
sceneName |
String | 否 | V2NIMStorageSceneConfig.DEFAULT_IM 对应的场景名 |
NOS 文件存储场景名。若使用自定义的存储场景,需要先调用 addCustomStorageScene 添加自定义存储场景。 |
duration |
Integer | 是 | - | 视频文件时长,单位为毫秒。 |
width |
Integer | 否 | null | 视频宽度,单位为像素。 |
height |
Integer | 否 | null | 视频高度,单位为像素。 |
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 * | 否 | null | 视频文件显示名称,可不同于文件名。 |
sceneName |
NSString * | 否 | V2NIMStorageSceneConfig.DEFAULT_IM 对应的场景名 |
NOS 文件存储场景名。若使用自定义的存储场景,需要先调用 addCustomStorageScene 添加自定义存储场景。 |
duration |
int | 是 | - | 视频文件时长,单位为毫秒。 |
width |
int | 否 | null | 视频宽度,单位为像素。 |
height |
int | 否 | null | 视频高度,单位为像素。 |
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 | 否 | null | 视频文件显示名称,可不同于文件名。 |
sceneName |
nstd::string | 否 | V2NIMStorageSceneConfig.DEFAULT_IM 对应的场景名 |
NOS 文件存储场景名。若使用自定义的存储场景,需要先调用 addCustomStorageScene 添加自定义存储场景。 |
duration |
uint32_t | 是 | - | 视频文件时长,单位为毫秒。 |
width |
uint32_t | 否 | null | 视频宽度,单位为像素。 |
height |
uint32_t | 否 | null | 视频高度,单位为像素。 |
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 | 否 | null | 视频文件显示名称,可不同于文件名。 |
sceneName |
string | 否 | V2NIMStorageSceneConfig.DEFAULT_IM 对应的场景名 |
NOS 文件存储场景名。若使用自定义的存储场景,需要先调用 addCustomStorageScene 添加自定义存储场景。 |
duration |
number | 是 | - | 视频文件时长,单位为毫秒。 |
width |
number | 否 | null | 视频宽度,单位为像素。 |
height |
number | 否 | null | 视频高度,单位为像素。 |
HarmonyOS
TypeScriptcreateVideoMessage(videoPath: string, name?: string, sceneName?: string, duration?: number, width?: number, height?: number): Promise<V2NIMMessage>
参数名称 | 类型 | 是否必填 | 默认值 | 说明 |
---|---|---|---|---|
videoPath |
Web File/string | 是 | - | 视频文件地址 |
name |
string | 否 | null | 视频文件显示名称,可不同于文件名。 |
sceneName |
string | 否 | V2NIMStorageSceneConfig.DEFAULT_IM 对应的场景名 |
NOS 文件存储场景名。若使用自定义的存储场景,需要先调用 addCustomStorageScene 添加自定义存储场景。 |
duration |
number | 是 | - | 视频文件时长,单位为毫秒。 |
width |
number | 否 | null | 视频宽度,单位为像素。 |
height |
number | 否 | null | 视频高度,单位为像素。 |
示例代码
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
}
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 | 否 | null | 文件显示名称,可不同于文件名。 |
sceneName |
String | 否 | V2NIMStorageSceneConfig.DEFAULT_IM 对应的场景名 |
NOS 文件存储场景名。若使用自定义的存储场景,需要先调用 addCustomStorageScene 添加自定义存储场景。 |
iOS
Objective-C+ (V2NIMMessage *)createFileMessage:(NSString *)filePath
name:(nullable NSString *)name
sceneName:(nullable NSString *)sceneName;
参数名称 | 类型 | 是否必填 | 默认值 | 说明 |
---|---|---|---|---|
filePath |
NSString * | 是 | - | 文件地址 |
name |
NSString * | 否 | null | 文件显示名称,可不同于文件名。 |
sceneName |
NSString * | 否 | V2NIMStorageSceneConfig.DEFAULT_IM 对应的场景名 |
NOS 文件存储场景名。若使用自定义的存储场景,需要先调用 addCustomStorageScene 添加自定义存储场景。 |
macOS/Windows
C++static nstd::optional<V2NIMMessage> createFileMessage(nstd::string filePath, nstd::string name, nstd::string sceneName);
参数名称 | 类型 | 是否必填 | 默认值 | 说明 |
---|---|---|---|---|
filePath |
nstd::string | 是 | - | 文件地址 |
name |
nstd::string | 否 | null | 文件显示名称,可不同于文件名。 |
sceneName |
nstd::string | 否 | V2NIMStorageSceneConfig.DEFAULT_IM 对应的场景名 |
NOS 文件存储场景名。若使用自定义的存储场景,需要先调用 addCustomStorageScene 添加自定义存储场景。 |
Web/uni-app/小程序
TypeScriptcreateFileMessage(fileObj: string | File, name?: string, sceneName?: string): V2NIMMessage
参数名称 | 类型 | 是否必填 | 默认值 | 说明 |
---|---|---|---|---|
fileObj |
Web File/string | 是 | - | File 对象。 |
name |
string | 否 | null | 文件显示名称,可不同于文件名。 |
sceneName |
string | 否 | V2NIMStorageSceneConfig.DEFAULT_IM 对应的场景名 |
NOS 文件存储场景名。若使用自定义的存储场景,需要先调用 addCustomStorageScene 添加自定义存储场景。 |
HarmonyOS
TypeScriptcreateFileMessage(filePath: string, name?: string, sceneName?: string): Promise<V2NIMMessage>
参数名称 | 类型 | 是否必填 | 默认值 | 说明 |
---|---|---|---|---|
filePath |
string | 是 | - | 文件地址 |
name |
string | 否 | null | 文件显示名称,可不同于文件名。 |
sceneName |
string | 否 | V2NIMStorageSceneConfig.DEFAULT_IM 对应的场景名 |
NOS 文件存储场景名。若使用自定义的存储场景,需要先调用 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
}
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 | 是 | - | 位置描述信息 |
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
}
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 字节。 |
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
}
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 |
是 | - | 待转发的消息体 |
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
}
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 | 是 | - | 提示消息内容 |
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
}
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 | 否 | - | 话单描述。 |
示例代码
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
}]
)
返回值
已创建的消息对象 V2NIMMessage
此文档是否对你有帮助?