消息构建

更新时间: 2024/09/14 17:04:28

网易云信即时通讯 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 创建一条话单消息
  • Android/iOS/Web:v10.2.6
  • macOS/Windows:v10.3.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 字符。
    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 -
  • 小程序:传入小程序文件路径。通过小程序平台自身的 chooseMessageFile 接口获取。
  • 其它环境:传入 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 -
  • 小程序:传入小程序文件路径。通过小程序平台自身的 chooseMessageFile 接口获取。
  • 其它环境:传入 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 -
  • 小程序:传入小程序文件路径。通过小程序平台自身的 chooseMessageFile 接口获取。
  • 其它环境:传入 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 -
  • 小程序:传入小程序文件路径。通过小程序平台自身的 chooseMessageFile 接口获取。
  • 其它环境:传入 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 - 话单类型,业务侧可自定义,网易云信不校验内容。建议设置为:
  • 1:音频
  • 2:视频
  • channelId String - 话单频道 ID,网易云信不校验内容。
    status Integer - 通话状态,业务侧可自定义状态,网易云信不校验内容。建议设置为:
  • 1:通话完成
  • 2:通话取消
  • 3:通话拒绝
  • 4:超时未接听
  • 5:对方忙
  • 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 - 话单类型,业务侧可自定义,网易云信不校验内容。建议设置为:
  • 1:音频
  • 2:视频
  • channelId NSString * - 话单频道 ID,网易云信不校验内容。
    status NSInteger - 通话状态,业务侧可自定义状态,网易云信不校验内容。建议设置为:
  • 1:通话完成
  • 2:通话取消
  • 3:通话拒绝
  • 4:超时未接听
  • 5:对方忙
  • 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 - 话单类型,业务侧可自定义,网易云信不校验内容。建议设置为:
  • 1:音频
  • 2:视频
  • channelId nstd::string - 话单频道 ID,网易云信不校验内容。
    status int32_t - 通话状态,业务侧可自定义状态,网易云信不校验内容。建议设置为:
  • 1:通话完成
  • 2:通话取消
  • 3:通话拒绝
  • 4:超时未接听
  • 5:对方忙
  • durations nstd::vector<V2NIMMessageCallDuration> - 通话成员时长列表,网易云信不校验内容。
    text nstd::string - 话单描述。
    Web/uni-app/小程序
    TypeScriptcreateCallMessage(type: number, channelId: string, status: number, durations: V2NIMMessageCallDuration[], text?: string): V2NIMMessage
    
    参数名称 类型 是否必填 默认值 说明
    type number - 话单类型,业务侧可自定义,网易云信不校验内容。建议设置为:
  • 1:音频
  • 2:视频
  • channelId string - 话单频道 ID,网易云信不校验内容。
    status number - 通话状态,业务侧可自定义状态,网易云信不校验内容。建议设置为:
  • 1:通话完成
  • 2:通话取消
  • 3:通话拒绝
  • 4:超时未接听
  • 5:对方忙
  • 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

    此文档是否对你有帮助?
    有帮助
    去反馈
    • 支持平台
    • API 概览
    • 接口类
    • createTextMessage
    • 接口描述
    • 参数说明
    • 示例代码
    • 返回值
    • createImageMessage
    • 接口描述
    • 参数说明
    • 示例代码
    • 返回值
    • createAudioMessage
    • 接口描述
    • 参数说明
    • 示例代码
    • 返回值
    • createVideoMessage
    • 接口描述
    • 参数说明
    • 示例代码
    • 返回值
    • createFileMessage
    • 接口描述
    • 参数说明
    • 示例代码
    • 返回值
    • createLocationMessage
    • 接口描述
    • 参数说明
    • 示例代码
    • 返回值
    • createCustomMessage
    • 接口描述
    • 参数说明
    • 示例代码
    • 返回值
    • createForwardMessage
    • 接口描述
    • 参数说明
    • 示例代码
    • 返回值
    • createTipsMessage
    • 接口描述
    • 参数说明
    • 示例代码
    • 返回值
    • createCallMessage
    • 接口描述
    • 参数说明
    • 示例代码
    • 返回值