| 项目 | 内容 |
|---|---|
| 文档版本 | v1.0(2026-10-08) |
| 功能模块 | ① 会话列表搜索(首页 → 搜索)② 全局分类搜索(聊天 / 群组 / 媒体 / 文件 / 语音)③ 聊天内部搜索(关键字 / 按日期 / 按成员) |
| 适用端 | 移动端 iOS / Android(本次交付)。Web / Desktop 见第八章 |
| UI 图(唯一依据) | Figma 6dsI4eKdAoZr4RP0uILIBq:iOS「全局搜索」SECTION 1188:85218(含子 SECTION「群内部搜索」1188:87532)· 安卓「全局搜索」SECTION 1293:101505(含子 SECTION「群内部搜索」1336:64713)。共 iOS 28 屏 / 安卓 20 屏 |
| 口径 | UI 图已评审通过,本 PRD 以它为准;三处例外:① 按产品口径砍掉「搜索链接」(2.2);② 按产品口径补齐两处高亮(列表模式关键字高亮、定位自己消息变色,见 4.3.7);③ 把 UI 图里重复的「未搜索时默认状态2」并掉(见 4.1.1,屏数 29 → 28)。其余不增不减 |
| 参照产品 | Telegram(搜索的入口、分类、长按菜单与转发交互) |
本 PRD 的边界:UI 图=唯一依据。凡图里画了的(页面、文案、按钮、菜单项)照做;图里没有画的(例如「搜索筛选器」「高级搜索」「按文件类型筛选」)本期不做,只在第十一章列成待确认,不自行补设计。
若某条逻辑图里看不出来(例如搜索历史保留多少条、结果怎么排序),本 PRD 按 Telegram 的既定行为写,并在第十一章标出需要产品/开发确认。
U8 现在没有搜索:
把搜索做成三层,每一层解决一个问题:
| 层 | 位置 | 解决什么 |
|---|---|---|
| ① 会话列表搜索 | 首页 → 搜索框 | 「我要找哪个人 / 哪个群」——找工作群、找人 |
| ② 全局分类搜索 | 同一个搜索页,切换底部 5 个分类 | 「我要找某个东西」——找图、找文件、找语音 |
| ③ 聊天内部搜索 | 聊天页 → 搜索 | 「在这个聊天里找某句话 / 某天的记录 / 某个人说的话」 |
三层共用同一个「搜索」入口与一套视觉。
| # | 模块 | 内容 | UI 画板 |
|---|---|---|---|
| ① | 会话列表搜索 | 搜索框;未搜索时的默认态(最近联系人头像 + 搜索历史);输入后的结果(最近 / 聊天和联系人 / 消息);「所有聊天」二级筛选;清空搜索历史(含二次确认) | iOS 1188:85507 85699 85837 87427 |
| ② | 全局分类搜索 | 底部 5 个分类:聊天 / 群组 / 媒体 / 文件 / 语音;每类的列表样式、长按菜单、多选、转发 | iOS 1188:85984 86282 86424 87169 87249 87360 85219 85341 86819 86630 1429:88301 1500:100804 |
| ③ | 聊天内部搜索 | 关键字搜索;按日期(日历);按成员;点成员自动定位 / 以列表显示;两种模式切换;组合筛选;未找到 | iOS 1188:87533 87815 88041 88393 88707 88998 89278 89526 89662 89741 90024 90297 |
| 不做的事 | 说明 |
|---|---|
| ★ 搜索链接 | U8 不支持搜索链接 —— 分类里不做「链接」(UI 图里画了这一类,按产品口径砍掉;本 PRD 与演示页均已去掉,iOS 屏数 33 → 29)。连带的「拷贝链接」菜单项、「链接已拷贝到剪贴板」提示一并不做 |
| 搜索筛选器 / 高级搜索(按时间范围、按消息类型、按发送者筛选) | UI 图里没有这个入口,本期不做 |
| 文件分类里的「按类型筛选」(只 apk / 只 mp4) | UI 图里没有 |
| 搜索结果的二次排序(按相关度 / 时间) | UI 图里没有排序入口,按时间倒序展示 |
| 全局搜索里搜「消息」的全文索引设置页 | 超范围 |
| 搜索结果页的批量删除 | UI 图里只有「转发 / 选择」 |
| 聊天内部搜索的结果导出 / 分享 | 超范围 |
| 语音转文字、图片 OCR、以图搜图 | 超范围 |
| Web / Desktop 端搜索 | 本次只交付移动端 |
| 深色模式、大字号无障碍 | 随全局一起排期 |
| 名词 | 含义 |
|---|---|
| 搜索入口 | 首页(会话列表)顶部的搜索框;以及聊天页顶部的搜索 |
| 默认态 | 打开搜索但还没输入关键字时的页面(联系人头像 + 搜索历史) |
| 搜索历史 | 你点击过的搜索结果的记录,显示在「最近」分区(iOS 图上的「最近」) |
| 五个分类 | 聊天 / 群组 / 媒体 / 文件 / 语音(底部悬浮胶囊 Tab) |
| 结果分区 | 输入关键字后,结果按来源分成「最近」「聊天和联系人」「消息」三块(iOS 85699) |
| 二级筛选 | iOS 图上的「所有聊天 ⌄」→ 可切「所有聊天 / 私聊 / 群聊」(85837) |
| 聊天内部搜索 | 在某一个聊天里搜索:关键字 / 按日期 / 按成员 |
| 两种浏览模式 | 聊天内部搜索命中后可以「以列表模式显示」或「以聊天模式显示」互相切换(88998 / 89526) |
| 来源标记 | 文件 / 语音条目上标注它来自哪个会话(图上显示为「小说资源管理群」这类灰字) |
1188:85507)入口:首页(会话列表)顶部搜索框 → 点击进入搜索页。
默认态(还没输入)自上而下:
| 区块 | 内容 | 规则 |
|---|---|---|
| 顶部搜索框 | 放大镜 + 占位「搜索」;右侧一颗 ✕ 圆形按钮 | 点 ✕ = 退出搜索页,回到会话列表;点搜索框进入输入态并唤起键盘 |
| 最近联系人头像 | 横向一排圆形头像(可左右滑),带在线绿点 | 显示最近的联系人;点某人 = 直接进该聊天 |
| 「最近」分区 | 标题「最近」+ 右侧「清空」 | 「最近」= 搜索历史(点击过的结果);「清空」→ 4.1.5 |
| 历史条目 | 头像 + 名字 + 状态行 | 状态行按对象类型显示:私聊=在线 / 最近上线于 4分钟前 / 最近上线于昨天 13:10 / 最近上线于 07/19/26;群=290位群成员 |
| 底部 分类 Tab | 聊天 / 群组 / 媒体 / 文件 / 语音 | 悬浮胶囊,默认选中「聊天」;切分类见 4.2 |
画板
1188:85603(「未搜索时默认状态2」)与85507是同一状态的两种排布(只有联系人头像行的间距 / 滚动位置不同,没有规则差异)—— 已按产品 2026-10-09 口径合并为一屏,本 PRD 只保留85507。
1188:85699)输入 「大哥」 后,页面自上而下:
| 分区 | 内容 | 规则 |
|---|---|---|
| 搜索框 | 关键字「大哥」+ 框内清空 ✕ + 右侧关闭 ✕ | 框内 ✕ = 清空关键字回到默认态 |
| 「最近」 | 命中关键字的搜索历史(「我是大哥」「请叫我大哥大」) | 与历史做前缀/包含匹配 |
| 「聊天和联系人」 | 命中的会话与联系人:私聊(头像 + 名字)、群(拼图头像 + 群名) | 命中范围=会话名 / 联系人名(含备注名?见待确认 ③) |
| 「消息」 | 右侧带「所有聊天 ⌄」筛选;每条 = 会话头像 + 会话名(粗) + 时间;下一行 = 发送者 + 消息内容摘要 | 上限按 TG;列表可滚动加载 |
| 底部 | 分类 Tab(当前「聊天」) | 切换到其它分类 → 4.2 |
要点
Jioy / 安丽 / 张妮),私聊结果不显示发送者。1188:85837)点「所有聊天 ⌄」展开二级筛选(图上是展开态):
| 选项 | 含义 |
|---|---|
| 所有聊天 | 不限(默认) |
| 私聊 | 只在 1 对 1 会话里找 |
| 群聊 | 只在群里找 |
1188:87427)点「最近」右侧的「清空」→ 弹出确认:
| 元素 | 文案 |
|---|---|
| 标题 | 您确定要清空搜索历史记录? |
| 按钮 | 取消 / 确定清空(红色,破坏性操作) |
位置:搜索页底部悬浮胶囊(与底部 Tab 同款样式),自左至右:
聊天 · 群组 · 媒体 · 文件 · 语音
| 分类 | 未输入关键字时 | 输入关键字后 |
|---|---|---|
| 聊天 | 默认态(联系人 + 搜索历史)→ 见 4.1.1 | 分区结果(最近 / 聊天和联系人 / 消息)→ 见 4.1.2 |
| 群组 | 群组列表(见 4.2.3) | 命中关键字的群组 |
| 媒体 | 最近的媒体(图片/视频网格)→ 见 4.2.4 | 命中关键字的媒体 |
| 文件 | 最近的文件列表 → 见 4.2.5 | 命中关键字的文件 |
| 语音 | 最近的语音列表 → 见 4.2.6 | 命中关键字的语音 |
规则
1429:88301 就是「媒体 + 关键字 大哥」的结果)。见 4.1(默认态与结果)。
1500:100804)条目 = 两行(照 UI 图):
| 位置 | 内容 |
|---|---|
| 左 | 群头像(方形圆角,拼图) |
| 第一行 | 群名(加粗) |
| 第二行 | @username(紫色)+ 空格 + N位群成员(灰字) |
⚠️ 群 ID 与群人数都在第二行、和群名分行显示 —— 不要挤在一行。
规则
1188:85984 / 1429:88301 / 87360)未输入时(85984):图片/视频网格(3 列),视频右下角带时长(1:28 / 1:39:17 / 32:09)。
滚动时(87360):出现月份分组标题(2026 年 7 月),即列表按月份分段。
输入关键字后(1429:88301):媒体以列表形式展示,每条:
| 位置 | 内容 |
|---|---|
| 左 | 缩略图(视频带时长角标) |
| 中 | 发送者名(Jioy / 安丽)+ 消息内容(大哥们,请吃饭吧) |
| 右下/右上 | 来源会话(紧急对接需求群 / 人力资源部门群 / Gorilla Case)+ 时间(12:02 / 昨天) |
注意:媒体未输入时是网格、输入后是列表 —— 这是 UI 图画的两套版式,照做。
1188:86282 / 86819)条目结构 = 两行(照 UI 图):
| 位置 | 内容 |
|---|---|
| 左 | 文件类型图标:橙色圆角方块 + 白色类型文字(apk / mp4 / txt / zip / 7z) |
| 第一行 | 文件名(加粗,过长时末尾 … 截断,绝不换行) |
| 第二行 | ↓ 12.9MB · 来源会话 —— 一个下载箭头 + 文件大小 + · + 来源会话,同一行 |
| 右 | 时间 |
⚠️ 两个易错点:① 类型图标是橙底白字(不是浅灰底);② 大小与来源会话在同一行用
·连接,不要拆成两行。
⚠️ 长文件名只在行内截断:像config_v38qqcqq11i38qq11iajopjol...这种必须显示成…,不能撑破一行、也不能压到右侧时间上。
长按(86819)→ 菜单:转发 / 在聊天中查看 / 选择。
1188:86424 / 86630)条目结构 = 两行(照 UI 图):
| 位置 | 内容 |
|---|---|
| 左 | 紫色圆形播放按钮(不是发送者头像) |
| 第一行 | 发送者名 › 来源会话 —— 名字 + 一个 › 箭头 + 群名,同一行 |
| 第二行 | 时长(0:09 / 0:32,灰字) |
| 右 | 时间 |
⚠️ 易错点:左边是播放按钮不是头像;发送者名与来源会话用
›连在同一行(不要上下两行)。
长按(86630)→ 菜单:转发 / 在聊天中查看 / 选择。
| 动作 | 规则 |
|---|---|
| 长按 | 弹出操作菜单(各分类菜单项见上);背景模糊 + 压暗,被长按的条目高亮 |
| 选择 | 进入多选态:顶部「已选 N 条」,每条左侧出现勾选圈;底部换成「转发」等操作(UI 87249) |
| 转发(单条) | 复用已有的转发页:顶部「转发」+ 搜索 + 会话列表 + 底部「聊天 / 联系人」切换;进入后可直接点会话发送(85219) |
| 转发(多条) | 转发页顶部变「发送」,右上角「选择」→ 多选会话(85341);发出后消息为「转发消息」+ [媒体] 占位 |
| 不做什么 | 结果页没有删除(UI 图上没有),也没有「保存到相册」、没有「拷贝链接」(U8 不支持搜索链接) |
1188:87533)入口:聊天页(单聊或群聊)→ 顶部搜索。
默认态:顶部变成搜索框 在此聊天中搜索(+ 右侧 ✕ 关闭),下方就是原来的聊天记录(不切换页面)。
左下角两颗圆形入口按钮(悬浮在聊天页左下):
| 按钮 | 图标 | 打开什么 |
|---|---|---|
| 左边 | 日历 | 「搜索」面板:按日期选日期 → 4.3.3 |
| 右边 | 人像 | 「搜索」面板:按成员选人 → 4.3.4 |
这两颗按钮只在搜索态(顶部是「在此聊天中搜索」时)出现。
发送者名字在气泡里(群聊的既有表现):名字是气泡内的第一行(在气泡内部、内容上方),并且按人着色 —— UI 图上张磊/杨小红是蓝色#008cd7、噜噜咕噜是橙色#e57100。自己的消息(紫色气泡)不带名字行。进入搜索态不改这个规则。
1188:87815)在搜索框输入关键字(图上示例 什么)后:
Rectangle 544824:填充亮黄 #ffe628、尺寸 30×21(正好盖住 2 个字的关键字「什么」),只盖关键字那几个字,不是整条消息;1188:88041)点左下日历按钮 → 底部弹起半个月屏面板:
| 元素 | 内容 |
|---|---|
| 左上 | ✕(关闭面板) |
| 标题 | 搜索 |
| 月份行 | 2026 年 9 月 + ›(月份选择);右侧 ‹ › 翻月 |
| 星期行 | 周日 周一 周二 周三 周四 周五 周六 |
| 日期网格 | 1 – 30;选中的日期是紫色实心圆 |
| 底部 | 紫色「完成」按钮 |
规则
‹ ›)。1188:88393 / 88707 / 90297)点左下人像按钮 → 搜索框变成 来自:,下方弹出一块悬浮成员面板:
| 元素 | 内容 |
|---|---|
| 搜索框 | 来自:(+ 清空 ✕)—— 在面板里再搜成员(88707:输入 噜噜咕噜 → 只剩这一人) |
| 成员行 | 头像 + 名字 + @username |
| 滚动 | 成员多时面板加高(90297 的「最高高度列表」显示 18 人),到最高后内部滚动 |
规则
88998)。并且 被定位的那条消息「整条气泡变色」:设计稿在它上面盖了一层名为 变色 的覆盖层 —— 填充 #e57100、不透明度 15%,气泡本体(218×48)和气泡角(10×15)都盖,视觉上是很浅的暖橙色底,与白色气泡区分开。
所有人都变色:UI 图
89278(定位到自己发的消息)那一屏没有画变色层,但按产品口径(2026-10-09)自己的消息同样变色 —— 规则统一,不区分是谁发的(见 4.3.7)。
1/16(当前第 1 条 / 共 16 条);以 列表 模式显示(切换按钮)。89278),并且同样变色(规则同上,不区分是谁发的)。88998 ↔ 89526)| 模式 | 长什么样 | 切换按钮 |
|---|---|---|
| 聊天模式 | 就是聊天记录本身,定位到命中的那条;顶部 1/16 计数 | 以 列表 模式显示 |
| 列表模式 | 纯结果列表:每条 = 发送者 + 内容(过长截断)+ 时间;命中关键字同样高亮;底部一行 16条消息、顶部 1/16 | 以 聊天 模式显示 |
规则
N/M 表示当前第 N 条 / 共 M 条命中;聊天模式下上下切换命中项,聊天记录跟着定位。[图片] 占位。89741 / 89662 / 90024)来自:噜噜咕噜),再在搜索框输入关键字(什么)→ 结果为「该成员 + 含该关键字」(89741)。89662)。90024):关键字没有命中时,在聊天记录上浮出一条白色圆角提示卡(带阴影):左侧一个「文档 + 放大镜」图标 + 文字 未找到相关信息;位置在屏幕中部偏左(贴着左边约 20pt,不是居中、也不带遮罩)。⚠️ 它不是整页空态 —— 成员筛选定位到的消息仍然正常显示在下面(该条照常变色),只是关键字这一层没有结果。
| 场景 | 高亮 | 出处(画板 / 图层) |
|---|---|---|
| 关键字命中 | 消息文本里的关键字加亮黄底色 #ffe628(只盖关键字那几个字,不是整条消息) | 1188:87815 的 Rectangle 544824(30×21,正好 2 个字) |
| 按成员定位 | 被定位的那条消息整条气泡盖一层 #e57100、不透明度 15% 的「变色」层(气泡本体 + 气泡角) | 1188:88998 的 变色/1排(218×48)+ 变色/气泡角(10×15) |
| 两者可叠加 | 成员 + 关键字同时生效时,气泡变色 + 关键字亮黄同时出现 | 1188:89741(两种高亮同屏) |
| 列表模式 | 同样高亮关键字(亮黄 #ffe628)—— 与聊天模式规则一致 | UI 图 1188:89662 里没画黄底,按产品口径 2026-10-09 补齐 |
| 自己发的消息 | 定位到自己发的消息时同样变色(不区分是谁发的) | UI 图 1188:89278 里没画变色层,按产品口径 2026-10-09 补齐 |
| 发送者名字 | 按人着色(群聊既有表现):张磊 / 杨小红 蓝 #008cd7、噜噜咕噜 橙 #e57100 | 各屏一致 |
⚠️ 表里最后两行(列表模式高亮、自己消息变色)是 UI 图里没有画的 —— 按产品口径 2026-10-09 补齐,规则与聊天模式保持一致(不留「同一功能两种表现」的口子)。实现按本表做,UI 出图时请把这两处补上。
| # | 屏 | 画板 node |
|---|---|---|
| 1 | 首页-聊天-搜索-未搜索时默认状态 | 1188:85507 |
| 2 | 首页-聊天-已搜索 | 1188:85699 |
| 3 | 首页-聊天-已搜索-所有聊天切换 | 1188:85837 |
| 4 | 首页-聊天-搜索-未搜索时默认状态-清空提示 | 1188:87427 |
| # | 屏 | 画板 node |
|---|---|---|
| 5 | 首页-搜索媒体-未搜索时-媒体 | 1188:85984 |
| 6 | 首页-搜索媒体-关键字搜索-媒体 | 1429:88301 |
| 7 | 首页-搜索媒体-媒体(长按) | 1188:87169 |
| 8 | 首页-搜索媒体-媒体(长按)-选择 | 1188:87249 |
| 9 | 首页-搜索媒体-未搜索时-媒体(滑动出现时间) | 1188:87360 |
| 10 | 首页-搜索媒体-媒体(长按)-选择-转发 | 1188:85219 |
| 11 | 首页-搜索媒体-媒体(长按)-选择-转发(多选) | 1188:85341 |
| 12 | 首页-搜索文件 | 1188:86282 |
| 13 | 首页-搜索文件-文件(长按) | 1188:86819 |
| 14 | 首页-搜索语音 | 1188:86424 |
| 15 | 首页-搜索语音-语音(长按) | 1188:86630 |
| 16 | 首页-搜索群组 | 1500:100804 |
| # | 屏 | 画板 node |
|---|---|---|
| 17 | 聊天详情-聊天内部搜索 | 1188:87533 |
| 18 | 聊天详情-聊天内部搜索-输入关键字搜索 | 1188:87815 |
| 19 | 聊天详情-聊天内部搜索-按日期 | 1188:88041 |
| 20 | 聊天详情-聊天内部搜索-按成员 | 1188:88393 |
| 21 | 聊天详情-聊天内部搜索-按成员-搜索成员 | 1188:88707 |
| 22 | 聊天详情-聊天内部搜索-按成员-点击成员-自动定位 | 1188:88998 |
| 23 | 聊天详情-聊天内部搜索-按成员-点击成员-自动定位-自己消息 | 1188:89278 |
| 24 | 聊天详情-聊天内部搜索-按成员-点击成员-以列表显示 | 1188:89526 |
| 25 | 聊天详情-聊天内部搜索-按成员-点击成员-以列表显示-加入关键字搜索 | 1188:89662 |
| 26 | 聊天详情-聊天内部搜索-按成员-点击成员-加入关键字搜索 | 1188:89741 |
| 27 | 聊天详情-聊天内部搜索-未找到相关信息 | 1188:90024 |
| 28 | 聊天详情-聊天内部搜索-按成员-最高高度列表 | 1188:90297 |
安卓 SECTION 1293:101505(全局)+ 1336:64713(聊天内部)覆盖同样的屏,规则完全一致,只是版式按安卓(412×892)。对应的安卓屏 node:
| 分组 | 安卓 node |
|---|---|
| 会话列表搜索 | 1448:97674 1448:97773 1448:97925 1448:98088 1448:100025 |
| 媒体 | 1448:98188 1448:99933 1448:99870 1448:98245 1448:98362 1448:99214 1448:99414 1448:99642 |
| 文件 | 1448:98596 |
| 语音 | 1448:98746 |
| 群组 | 1501:100928 |
| 聊天内部搜索 | 1336:64714 64842 64972 65129 65360 65492 65635 65780 65924 66069 66177 66286 |
安卓少了 iOS 的「媒体长按(未选择)」等屏 —— 按 iOS 的规则实现,安卓只是没有单独出图。
| # | 情况 | 处理 |
|---|---|---|
| ① | 关键字一个字符都没有 | 停在默认态(联系人 + 搜索历史),不出现「未找到」 |
| ② | 关键字没有命中(会话列表搜索) | 各分区不显示;「消息」区显示空态(UI 图上没有专门画空态,见待确认 ⑥) |
| ③ | 聊天内部搜索关键字没有命中 | 在聊天记录上浮出一条 未找到相关信息 提示(白底圆角 + 图标),不是整页空态(UI 90024) |
| ④ | 搜索时网络断开 | 只搜本地缓存结果;顶部提示网络异常(沿用既有提示文案) |
| ⑤ | 空群 / 新群(成员面板只有自己) | 成员面板只列出实际成员 |
| ⑥ | 群成员很多(面板到最高高度) | 面板加高到上限后内部滚动(UI 90297) |
| ⑦ | 搜索历史为空 | 「最近」分区整块不显示(不留空标题) |
| ⑧ | 清空历史后再搜索 | 新点击的结果重新写入「最近」 |
| ⑨ | 转发时原消息已被删除 | 转发失败并提示「消息已不存在」(沿用既有转发失败文案) |
| ⑩ | 媒体/文件/语音没有内容 | 该分类列表为空(UI 图上没有空态,见待确认 ⑤) |
| 端 | 本次 |
|---|---|
| iOS / Android | ★ 本次交付,同规则、两套版式(见 5.4) |
| Web / Desktop | 本次不出屏。规则与移动端一致,等排期时按本 PRD 落 |
| 官方客服号「U8 Chat」会话 | 聊天内部搜索同样可用(它就是普通会话) |
| 位置 | 文案 |
|---|---|
| 会话列表搜索框占位 | 搜索 |
| 聊天内部搜索框占位 | 在此聊天中搜索 |
| 按成员时的搜索框 | 来自: |
| 分区标题 | 最近 / 聊天和联系人 / 消息 |
| 二级筛选 | 所有聊天 / 私聊 / 群聊 |
| 分类 Tab | 聊天 / 群组 / 媒体 / 文件 / 语音 |
| 清空历史 | 标题 您确定要清空搜索历史记录?;按钮 取消 / 确定清空 |
| 长按菜单(媒体/文件/语音) | 在聊天中查看 / 转发 / 选择 |
| 按日期面板 | 标题 搜索;月份 2026 年 9 月;按钮 完成 |
| 结果计数 | 1/16 |
| 模式切换 | 以 列表 模式显示 / 以 聊天 模式显示 |
| 列表模式底部 | 16条消息 |
| 空结果 | 未找到相关信息 |
| 状态行(私聊) | 在线 / 最近上线于 4分钟前 / 最近上线于昨天 13:10 / 最近上线于 07/19/26 |
| 状态行(群) | 290位群成员 |
以上全部照 UI 图,一字不改;本 PRD 不新增任何用户可见文案。
| # | 能力 | 说明 | ||
|---|---|---|---|---|
| ① | 全局搜索 | 一个接口按 keyword + category(chat/group/media/file/voice) + filter(all/private/group) + offset 返回;各分类返回各自的条目结构 | ||
| ② | 未输入时的「最近」 | 媒体 / 文件 / 语音各自一个「最近列表」接口(按时间倒序,分页) | ||
| ③ | 搜索历史 | 本地存 + 服务端同步(点击过的结果才写入,见 3.搜索历史) | ||
| ④ | 聊天内部搜索 | `chat_id + (keyword | date | member_id) + offset;返回命中消息 id 列表 + 总数(对应 1/16` 的 16) |
| ⑤ | 定位 | 命中消息 id → 客户端在聊天记录里定位 | ||
| ⑥ | 转发 | 复用既有的转发接口(搜索结果转发按原消息转发) | ||
| ⑦ | 埋点 | 进搜索页 / 切分类 / 输入关键字(长度、是否命中)/ 点结果(哪个分区)/ 长按菜单项 / 转发 / 按日期 / 按成员 / 模式切换 / 清空历史 |
| # | 问题 | 影响 |
|---|---|---|
| ① | 搜索历史保留多少条、什么时候写(点击结果时写?)—— UI 图看不出来 | 本地存储与同步 |
| ② | 各分类「最近的…」默认展示多少条、是否分页(媒体网格一次加载多少) | 接口分页参数 |
| ③ | 「聊天和联系人」的匹配范围:昵称 / 备注名 / 账号名 / 手机号分别搜不搜? | 后端匹配字段 |
| ④ | 媒体为什么未输入时是网格、输入后是列表 —— 确认这是有意的两套版式 | 前端实现 |
| ⑤ | 空态:全局搜索无结果、各分类无内容时显示什么?(UI 图没画) | 需要 UI 补 |
| ⑥ | 群组分类点进去之后、媒体/文件/语音点进去之后的行为(直接打开?还是另开预览页?)UI 图没画 | 交互补全 |
| ⑦ | 「最近联系人头像」的排序与数量(最近聊天?最近联系人?最多几个) | 接口 |
| ⑧ | 「消息」分区每个会话只显示一条还是要多条?(图上每个会话一条) | 后端聚合方式 |
| ⑨ | 结果去重与排序:同一会话命中多条时怎么排;置顶会话是否优先 | 后端 |
| ⑩ | 请 UI 补两处图:列表模式的关键字高亮、定位到自己消息时的变色层 —— 产品已拍板「都要有」 | UI 出图 |
| 项 | 口径 |
|---|---|
| UI 图已评审 | 本 PRD 不新增、不修改任何页面与文案;图上没有的功能一律不做(见 2.2)。唯一按产品口径砍掉的是「链接」分类(UI 图画了,但 U8 不支持搜索链接) |
| 图上逻辑看不出来的部分 | 按 Telegram 的既定行为 + 上文「待确认」两处标注,不自行补设计 |
| 旧交付物 | 搜索功能/ 目录里 2026-09-11 的《会话列表搜索 PRD》是早期版本(只覆盖会话列表搜索),本次以本 PRD 与 iOS「全局搜索」SECTION 1188:85218 为准;旧文件保留不动 |
本 PRD 以 Figma 画板为唯一依据。评审时请对照 iPad/iPhone 设计稿一起看:第六章的文案表可以直接做「文案核对清单」。