SDKsHarmonyOS商业版
发送消息
将待发送消息发送给单聊用户或群组。
sendMessage() 接收由消息创建 API 返回的 IMMessage。单聊只填写 recvID,群聊只填写 groupID;另一个目标字段传空字符串。
参数说明
| 参数 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
message | IMMessage | 是 | 待发送消息对象。 |
recvID | string | 条件必填 | 单聊接收方;群聊传空字符串。 |
groupID | string | 条件必填 | 群聊目标群组;单聊传空字符串。 |
isOnlineOnly | boolean | 是 | 是否只向在线客户端投递;此类消息不进入本地历史。 |
import sdk, {
EventOnSendMsgProgressData,
OpenIMSDKEvent,
SendMessageReq,
SendMessageResp,
} from '@openimsdk/imsdk';
const request: SendMessageReq = {
message: message,
recvID: receiverUserID,
groupID: '',
isOnlineOnly: false,
};
const response: SendMessageResp = await sdk.sendMessage(request);
replacePendingMessage(response.message.clientMsgID, response.message);
const handleSendProgress = (data: EventOnSendMsgProgressData): void => {
updateMessageProgress(data.clientMsgID, data.progress);
};
const unsubscribeSendProgress = sdk.on(OpenIMSDKEvent.EventOnSendMsgProgress, handleSendProgress);
export function removeSendProgressListener(): void {
unsubscribeSendProgress();
}发送本地媒体时,进度事件按 clientMsgID 更新,不要按列表下标关联。进度到达不表示发送成功;最终以 Promise 结果和消息状态为准。Promise 成功后使用返回消息替换待发送项;其他客户端收到消息仍是另一个阶段。销毁发送状态层时调用 unsubscribeSendProgress()。
这个页面有帮助吗?