1.8 KiB
Raw Permalink Blame History

id, title, type, feature, scope, locale, aliases, related_tools, related_pages, prerequisites, negative, last_verified
id title type feature scope locale aliases related_tools related_pages prerequisites negative last_verified
messenger.read-receipt.concept 已读未读状态 concept messenger end-user zh
已读未读
谁看过了
消息已读
谁还没看
看消息回执
已读列表
get_message_list
messenger
dialog_chat
已读未读不支持手动关闭显示,是系统统一行为
通知类消息notice、系统消息不计入已读统计
离开会话不会自动标记已读,需要打开会话并向上滚动经过该消息
v1.7.90

已读未读状态

DooTask 的「已读未读」read receipt以消息 + 用户两两组合粒度记录。每个对话成员对每条消息有一行 web_socket_dialog_msg_reads,未读 read_at=null已读后写入时间戳。

定义

  • 未读unreadread_at 为 null
  • 已读readread_at 有值
  • @提及未读mention未读 + mention=1 的子集,会在会话列表右侧显示带数字的「@」标记
  • 红点dot服务端推送轻提示刷新会话即清除

关键属性

  • 未读数:会话级 / 全局级两个统计;会话内可点「未读消息」气泡跳转最早未读
  • 已读列表:群消息支持查看「谁已读 / 谁未读」,调用 readlist 接口
  • 标记未读mark_unread用户主动把已读会话再次置成未读便于稍后处理

与其他概念的关系

  • 与免打扰:开免打扰后不弹通知但仍累计未读;@仍强制提醒
  • 与标记未读mark_unread=1 时打开会话会自动清除标记
  • 与隐藏:隐藏的会话依然计入未读总数

不支持

  • 不支持「单条消息按用户级别已读时间戳」的展示,仅二元 has-read / not-read
  • 不支持「24h 内未读自动清除」
  • 不支持已读后再撤销已读