注册即时通讯云 注册客服云

环信即时通讯 IM SDK(HarmonyOS)消息类型与发送示例


说明:以下通讯内容仅在业务代码调用对应发送接口时才会产生并上传至服务端;未调用相应 API 时不会触发对应类型的消息传输。

适用:HarmonyOS 平台,ArkTS API 以工程依赖的 @easemob/chatsdk 为准。

1. 文本消息(TXT)

import { ChatClient, ChatMessage } from '@easemob/chatsdk';
let msg = ChatMessage.createTextSendMessage(to, '这是一条文字消息');
if (msg) {
  ChatClient.getInstance().chatManager()?.sendMessage(msg);
}

2. 图片消息(IMAGE)

import { ChatClient, ChatMessage } from '@easemob/chatsdk';
let msg = ChatMessage.createImageSendMessage(to, '/path/picture.jpg');
if (msg) {
  ChatClient.getInstance().chatManager()?.sendMessage(msg);
}

3. 语音消息(VOICE)

import { ChatClient, ChatMessage } from '@easemob/chatsdk';
let msg = ChatMessage.createVoiceSendMessage(to, '/path/voice.mp3', 10);
if (msg) {
  ChatClient.getInstance().chatManager()?.sendMessage(msg);
}

4. 视频消息(VIDEO)

import { ChatClient, ChatMessage } from '@easemob/chatsdk';
let msg = ChatMessage.createVideoSendMessage(to, '/path/video.mp4', 30, '/path/thumb.jpg');
if (msg) {
  ChatClient.getInstance().chatManager()?.sendMessage(msg);
}

5. 文件消息(FILE)

import { ChatClient, ChatMessage } from '@easemob/chatsdk';
let msg = ChatMessage.createFileSendMessage(to, '/path/report.pdf');
if (msg) {
  ChatClient.getInstance().chatManager()?.sendMessage(msg);
}

6. 位置消息(LOCATION)

import { ChatClient, ChatMessage } from '@easemob/chatsdk';
let msg = ChatMessage.createLocationSendMessage(
  to, 39.9042, 116.4074, '北京市东城区');
if (msg) {
  ChatClient.getInstance().chatManager()?.sendMessage(msg);
}

7. 透传 / 命令消息(CMD)

import { ChatClient, ChatMessage, ChatType, CmdMessageBody } from '@easemob/chatsdk';
let body = new CmdMessageBody('myAction');
let msg = ChatMessage.createSendMessage(to, body, ChatType.Chat);
if (msg) {
  ChatClient.getInstance().chatManager()?.sendMessage(msg);
}

8. 自定义消息(CUSTOM)

import { ChatClient, ChatMessage, ChatType, CustomMessageBody } from '@easemob/chatsdk';
let body = new CustomMessageBody('gift');
let params = new Map<string, string>();
params.set('key1', 'value1');
body.setParams(params);
let msg = ChatMessage.createSendMessage(to, body, ChatType.Chat);
if (msg) {
  ChatClient.getInstance().chatManager()?.sendMessage(msg);
}

9. 合并转发消息(COMBINE)

import { ChatClient, ChatMessage } from '@easemob/chatsdk';
let title = 'A和B的聊天记录';
let summary = 'A:这是A的消息内容
B:这是B的消息内容';
let compatibleText = '您当前的版本不支持该消息,请升级到最新版本';
let msg = ChatMessage.createCombinedSendMessage(title, {
  summary,
  compatibleText,
  messageIds: ['msgId1', 'msgId2']
});
ChatClient.getInstance().chatManager()?.sendMessage(msg);

类型与创建方法对照(HarmonyOS)

消息类型 主要创建方式
文本 createTextSendMessage(to, message)
图片 createImageSendMessage(to, filePath)
语音 createVoiceSendMessage(to, filePath, duration)
视频 createVideoSendMessage(to, filePath, duration, thumbPath?)
文件 createFileSendMessage(to, filePath)
位置 createLocationSendMessage(to, lat, lng, addr)
命令 new CmdMessageBody + createSendMessage(to, body, ChatType)
自定义 new CustomMessageBody + setParams + createSendMessage
合并转发 createCombinedSendMessage(title, { summary, compatibleText, messageIds })



申请试用

提交后工作人员会尽快与您联系进行功能演示
技术咨询已转移到管理后台,请先登录

即时通讯云使用者请在应用详情页面咨询
客服云使用者请进入管理员模式咨询

×

电话咨询

免费试用

环信即时通讯云——100注册用户永久免费
环信MQTT——免费开通 每月赠送额度
环信PUSH——1000个DAU免费

注册享福利、赢好礼

立即体验