浏览 SDKs · Flutter
SDKsFlutter

标记会话已读

使用 Flutter SDK 将指定会话的消息标记为已读。

复制

用户打开会话并阅读完当前可见消息后调用:

await OpenIM.iMManager.conversationManager.markConversationMessageAsRead(
  conversationID: conversationID,
);

不要在只预览通知或后台收到消息时提前标记。Future 成功表示请求完成,不等于 onConversationChanged 已到达;随后按 conversationID 合并最新 ConversationInfo,需要立即确认时重新查询该会话。

对于单聊,当前用户标记会话已读后,对端可通过 onRecvC2CReadReceipt 收到消息已读回执。本页是该回调的正文归属页。对每个 ReadReceiptInfo 先验证单聊 sessionType 和非空 userID,用对端用户解析 conversationID,再按 msgIDList 中的非空 clientMsgID 更新已读状态。

void handleC2CReadReceipts(List<ReadReceiptInfo> items) {
  for (final receipt in items) {
    mergeC2CReadReceipt(receipt);
  }
}

handleC2CReadReceipts 传给应用唯一 OnAdvancedMsgListeneronRecvC2CReadReceipt;集中设置方式见事件概览。固定 Flutter SDK 没有群消息成员级回执能力。