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 对全体成员的特殊标记,不创建消息,也不触发事件。
这个页面有帮助吗?