SDKsHarmonyOS商业版
标记会话已读
将指定会话中当前已接收的消息标记为已读。
用户确实阅读当前消息后再调用,不要在后台通知预览时提前清零。
import sdk, {
EventOnRecvC2CReadReceiptData,
MarkConversationMessageAsReadReq,
OpenIMSDKEvent,
} from '@openimsdk/imsdk';
const request: MarkConversationMessageAsReadReq = {
conversationID: conversationID,
};
await sdk.markConversationMessageAsRead(request);
const handleC2CReceipt = (data: EventOnRecvC2CReadReceiptData): void => {
for (let index = 0; index < data.msgReceiptList.length; index += 1) {
mergeC2CReadReceipt(data.msgReceiptList[index]);
}
};
const unsubscribeReceipt = sdk.on(OpenIMSDKEvent.EventOnRecvC2CReadReceipt, handleC2CReceipt);
export function removeC2CReadReceiptListener(): void {
unsubscribeReceipt();
}Promise 成功表示已读请求已完成。会话未读数通过会话变更事件更新,客户端根据 conversationID 更新对应会话未读状态,完整监听配置请参考获取会话列表;单聊对端通过 EventOnRecvC2CReadReceipt 事件接收已读回执并按消息 ID 维护已读状态。群聊消息已读属于独立能力,请参考上报群消息已读。退出账号或销毁消息状态层时调用 removeC2CReadReceiptListener() 移除监听。
这个页面有帮助吗?