浏览 SDKs · HarmonyOS
平台
SDKsHarmonyOS商业版

创建 @ 消息

创建一条用于群聊的 @ 文本消息。

复制

当前 HarmonyOS SDK 的接口要求同时提供正文、最多 10 个被提及成员以及一条引用消息。被提及成员使用稳定用户 ID,展示名使用其群内昵称。

import sdk, { AtInfo, CreateTextAtMessageReq, CreateTextAtMessageResp } from '@openimsdk/imsdk';

const mentionedUser: AtInfo = {
  atUserID: 'user_a',
  groupNickname: 'Alex',
};
const request: CreateTextAtMessageReq = {
  text: '@Alex 请确认',
  usersInfo: [mentionedUser],
  quoteMessage: sourceMessage,
};
const response: CreateTextAtMessageResp = await sdk.createTextAtMessage(request);
const message = response.message;

sourceMessage 应来自同一群聊的查询结果或消息事件。创建本身不会改变会话的 @ 提醒状态,也不会触发新消息事件;发送时只填写目标 groupID

提及全体成员

不要在业务代码中写死全体成员标记。先从 SDK 读取当前约定的标记,再用它构建 @ 消息:

import sdk, {
  AtInfo,
  CreateTextAtMessageReq,
  CreateTextAtMessageResp,
  GetAtAllTagResp,
} from '@openimsdk/imsdk';

const atAllResult: GetAtAllTagResp = await sdk.getAtAllTag();
const atAllUser: AtInfo = {
  atUserID: atAllResult.tag,
  groupNickname: '全体成员',
};
const request: CreateTextAtMessageReq = {
  text: `${atAllResult.tag} 请查看群公告`,
  usersInfo: [atAllUser],
  quoteMessage: sourceMessage,
};
const response: CreateTextAtMessageResp = await sdk.createTextAtMessage(request);
const message = response.message;

getAtAllTag() 成功时返回 tag。它只读取 SDK 对全体成员的特殊标记,不创建消息,也不触发事件。