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.unread.concept |
未读数和标记未读 |
concept |
messenger |
end-user |
zh |
| 未读数 |
| 红点是什么 |
| 怎么显示未读数 |
| 标记未读 |
| 把消息标记为未读 |
| 群里多少条没看 |
|
|
|
|
| 红点(dot)和未读数(unread)是两个独立机制:dot 是轻提示,unread 按消息粒度统计 |
| 未读数总上限受展示限制(一般 99+ 截断),实际 DB 仍精确 |
| 标记未读(mark_unread)只对自己有效,且打开会话会自动清除 |
|
v1.7.90 |
未读数和标记未读
「未读数」(unread count)是每个用户在每个会话里未读消息的条数,按 dialog_msg_reads.read_at=null 实时计算。「标记未读」(mark_unread)是用户主动把已读会话再次置成未读,用于稍后处理。
定义
- unread:会话当前未读消息条数
- unread_one:是否仅有 1 条(用于「N 条新消息」气泡显示)
- mention:未读 + 被 @ 的消息条数
- mention_ids:被 @ 的消息 ID 列表
- mark_unread:用户主动标记未读(1=已标)
- dot:服务端轻量推送红点,刷新即清
关键属性
- 进入会话并向上滚动经过该消息 → 自动标已读
- 主动「标记已读 / 一键已读」→ chunkById 批量写 read_at
- 主动「标记未读」→ mark_unread=1,列表上显示红点;打开会话自动清除
- 免打扰开启 / 关闭都不影响未读计数
与会话列表显示的关系
- 未读 > 0 显示「N」徽标
- mention > 0 显示「@N」徽标,优先级高于普通未读
- mark_unread=1 显示红点但不显数字
不支持
- 不支持「将整个会话彻底清零未读但不打开」(必须打开或调用一键已读)
- 不支持按消息类型筛选未读(如只看图片未读)
- 不支持把未读数同步到其他客户端的"动态"提示