| 项目 | 内容 |
|---|
| 文档版本 | v1.1(2026-10-09 按产品拍板删减:去掉「例外」名单、去掉「个人简介」的隐私设置 —— 只保留「最后上线时间与在线状态」「手机号码」两项,演示从 13 屏减到 9 屏) |
| 功能模块 | 我的 → 隐私和安全 → ① 最后上线时间与在线状态 ② 手机号码 |
| 适用端 | 移动端 iOS / Android(本次交付范围)。Web / Desktop 的规则见第八章 |
| 入口 | 我的 → 隐私和安全(唯一入口) |
| 演示与逐屏 | 同目录 index.html(9 屏:iOS 7 + 安卓 2) |
| 参照产品 | Telegram「隐私和安全」里的对应两项 —— 只做 Telegram 有的那套,不自创规则。<b>例外(Always/Never Share With)U8 不做</b> |
| 设计稿 | Figma 6dsI4eKdAoZr4RP0uILIBq(U8 Chat 2.0)。已有画板:iOS「我的-隐私和安全」803:143913(入口页 1345:77991)、安卓 1347:79423(入口页 1347:81020)、「我的」802:129933。⚠️ 这两项的可见性页在画板里没有 —— 本次由本演示给出建议稿,逐屏标注「设计稿未画」 |
| 口径来源 | 2026-10-08 产品拍板:① 照 Telegram 的三档(所有人 / 我的联系人 / 没有人)② 手机号那一行改造成可点进入的可见性页 ③ 本次只交付移动端;「注销账号」不属于本页(在「我的 → 编辑」里);演示手机屏上只放给用户看的文案,讲解性说明一律放右侧说明栏。<br>2026-10-09 产品拍板(本版):④ 去掉「例外」名单(不做「总是分享给 / 永不分享给」);⑤ 去掉「个人简介」的隐私设置(本页不再出现这一项) |
本演示与 PRD 都是「UI 设计之前的输入」:作用是讲清楚「这个功能有哪些页面、从哪儿进、每一档是什么」,并给出每页的规则与文案建议。已有画板(我的、我的-隐私和安全)照做;没画的两项可见性页由本演示给出建议稿。最终视觉以 UI 设计为准,按钮摆放、间距一类版式细节不作为评审与验收项。
设计图=目标状态,但不全(2026-09-23 产品澄清):画板里没有的页面不代表没做过;哪些已经开发完成,一律由产品确认。
一、背景与目标
1.1 背景
U8 目前的「我的 → 隐私和安全」是一页只读的安全设置:已拉黑的用户、锁定码&Face ID、登录密码、资金密码、密保问题,加上一行「手机号 / 不允许任何人」。
也就是说:唯一和隐私有关的一行(手机号)只有值,没有地方可改;而「他能不能看到我上过线」「陌生人能不能看到我写的简介」这类问题,现在没有任何入口。
1.2 目标
- 把「手机号」这一行从只显示变成可点进入的设置页(不让它继续当装饰)。
- 新增一项可见性设置:最后上线时间与在线状态。
- 两项共用同一套规则:三档(所有人 / 我的联系人 / 没有人)—— 没有「例外」名单(2026-10-09 拍板)。
- 把「在线状态」这条反直觉的联动(你藏起来,也就看不到别人)在界面上明说,别让用户以为自己只赚不亏。
1.3 不做什么(一句话)
不新增第四个可见性项、不做「谁可以给我发消息 / 谁能给我打电话」这类新维度、不做定时销毁或隐身模式、不做「例外」名单(2026-10-09 拍板,见 2.2)、不做「个人简介」的隐私设置。
二、范围
2.1 本期做
| # | 模块 | 内容 |
|---|
| ① | 入口页改造 | 我的 → 隐私和安全:「手机号」行可点(★ 改造);新增「最后上线时间与在线状态」一行(★ 新增)。其余 5 行照画板不动;不放「注销账号」(见 4.1) |
| ② | 可见性设置页 ×2 | 每项一个页:三档单选(所有人 / 我的联系人 / 没有人)。没有「例外」区 |
| ③ | 在线状态的联动提示 | 档位不是「所有人」时,页面上给出「你将无法看到其他人的最后上线时间与在线状态」的黄色提示 |
| ④ | 安卓端 | 与 iOS 同一套规则,版式按安卓画板(整页设置 + 右上「保存」) |
2.2 本期不做
| 不做的事 | 说明 |
|---|
| 其余可见性项(个人资料照片 / 转发消息 / 通话 / 语音消息 / 群组和频道 / 已读回执) | Telegram 有,但本次只要这两项。页面顺序与位置本期不预留(以后加行即可) |
| 「例外」名单(整块不做) | Telegram 的例外有两份方向相反的名单(Always / Never Share With);产品 2026-10-09 拍板:U8 不做例外 —— 档位就是唯一规则 |
| 「个人简介」的隐私设置 | 产品 2026-10-09 拍板:不做(本页不出现这一项,入口页也不加这一行) |
| 「谁能通过我的手机号码找到我」 | 与 U8 既有的「通过手机号找到我」类开关重叠,必须先和产品对齐(见 11.②) |
| 隐身模式 / 定时销毁 / 只对某人永久可见的「资料白名单」 | 超出本次范围 |
| Web / Desktop 端页面 | 本次只交付移动端(Web 端的现状与规则见第七章) |
| 深色模式、大字号无障碍 | 随全局一起排期 |
三、名词与统一口径
3.1 两个可见性项
| 项 | 行名(入口页) | 设置页标题 | 这一项管什么 |
|---|
| ① | 手机号 | 手机号码 | 谁能在你的资料页看到你的手机号 |
| ② | 最后上线时间与在线状态 | 最后上线时间与在线状态 | 谁能看到你「最后上线于 …」以及你此刻是否在线 |
行名口径:iOS 画板上这一行写的是「手机号」,安卓画板写的是「手机号码」。本演示各自照画板;文本中统一用「手机号码」。要统一成哪一个,见待确认 ①。
3.2 三档(单选,一个答案)
| 档位 | 含义 |
|---|
| 所有人 | 任何人(含陌生人、群成员、没加过好友的人)都能看到 |
| 我的联系人 | 只有你的联系人能看到 |
| 没有人 | 谁都看不到(你自己看自己的资料页永远能看到) |
- 三档单选、互斥,没有中间态。
- 「我的联系人」的判定口径(单向还是双向联系人、群成员算不算)见待确认 ⑤。
- 档位即时生效(iOS 点了就写回)/安卓点「保存」才写回(见 4.6)。
3.4 「最后上线时间」和「在线状态」是同一个开关
- 这两件事共用一个档位(Telegram 的做法),不拆成两个问题。
- 别人看到的「最后上线」是相对时间(如「3 分钟之前」),不是绝对时刻(与 U8 既有展示一致)。
- 联动规则(★ 本次的关键口径):你的这一项不是「所有人」时,你也看不到别人的最后上线时间与在线状态;界面必须给出黄色提示(演示屏
#E_B2 / #E_B3 / #E_E2)。
Telegram 官方原文(2026-10-08 实读 telegram.org/faq):“you won't see Last Seen timestamps for people with whom you don't share your own” —— 你看不到那些「你没有与之共享自己最后上线时间」的人的最后上线时间;并且此时仍会显示粗略值(最近 / 一周内 / 一月内 / 很久以前)。 U8 要不要保留这个「粗略值」,由产品拍板(见 11.③)。本演示按「不给看就是不给看」的直白口径写文案。
- 在线状态的例外情形(Telegram 的既定行为,见 11.③):即使不共享,对方在下面三种情况下仍会短暂看到你在线(约 30 秒)——① 你给他发了单聊消息、② 你读了他发给你的单聊消息、③ 你在他那儿正在输入。U8 是否照搬,需产品确认。
3.5 「没有改过」的默认值(新用户,★ 待确认)
| 项 | 建议默认 | 依据 |
|---|
| 最后上线时间与在线状态 | 所有人 | Telegram 默认;也是「社交产品默认」惯例 |
| 手机号码 | 没有人 | 照 iOS 画板(那一行的值写的就是「不允许任何人」) |
两个默认值都在待确认 ⑥ 里,需要产品拍板后同步给开发。
四、功能详情
4.1 入口与入口页改造
入口路径:我的 → 隐私和安全 → 点某一项(唯一入口,没有第二个入口,也不做快捷方式)。
入口页的改造点(演示屏 #E_A2):
| 行 | 本次动作 | 行右侧值 |
|---|
| 已拉黑的用户 / 锁定码&Face ID / 登录密码 / 资金密码 / 密保问题 | 不动(照画板) | 照画板 |
| 手机号 | ★ 从「只显示」改成「可点进入」 | 当前可见性(画板值:不允许任何人) |
| 最后上线时间与在线状态 | ★ 新增一行 | 所有人(默认) |
| 注销账号 | ★ 不放这一页 | — |
★ 「注销账号」不在本页(产品口径):画板「我的-隐私和安全」上画了这一行,但按产品口径它属于「我的 → 编辑」页 —— 安卓画板「我的-编辑」里就是「退出账号 / 注销账号」两行(1083:55521)。所以本页不放注销账号,本演示与画板在这一处故意不一致。
规则
- 三行的右侧值=当前档位的文案(所有人 / 我的联系人 / 没有人),点进去可改,改完返回时右侧值同步变化。
- 三行的位置:手机号在上,新增两行在下(与 Telegram 的排列顺序一致:号码 → 最后上线时间与在线状态 → 简介)。
- 「我的」页(
#E_A1)一个字都不改,只有「隐私和安全」这一行是本次的入口。
4.2 可见性设置页(两项共用同一个版式)
页面结构(自上而下)
- 档位列表:三行单选(所有人 / 我的联系人 / 没有人),当前档位右侧显示紫色对勾。
- 说明区:一两句灰字,解释当前档位对别人意味着什么。
- 提示区(仅在线状态项):档位不是「所有人」时,显示黄色提示条(见 4.4)。
规则
- 点某一档 → 立即生效(iOS),页面留在原位,勾选与说明文案一起变(不弹窗、不二次确认)。
- 点「总是分享给」→ 进入名单页(4.3)。
- 两项的档位互相独立:手机号选「没有人」不影响在线状态的「所有人」。
- 返回上一级时,入口页那一行的值必须是新值(不能出现「改完了但列表还显示旧值」)。
三项各自的说明文案(建议稿,最终以 UI 为准)
| 项 | 档位 | 说明区文案 |
|---|
| 在线状态 | 所有人 | 这一档下,任何人(包括陌生人)都能在你的资料页看到你的最后上线时间;你在线时,会话与资料页显示「在线」。别人看到的时间是相对时间(如「3 分钟之前」)。 |
| 在线状态 | 我的联系人 | 只有你的联系人能看到你的最后上线时间与在线状态。 |
| 在线状态 | 没有人 | (不写说明,改用黄色提示条) |
| 手机号码 | 没有人 | 当前:没有人能看到你的手机号码 —— 联系人、陌生人都看不到,只有你自己和平台能看到。别人不会因为你隐藏了号码就无法给你发消息。 |
| 手机号码 | 我的联系人 | 只有你的联系人能在你的资料页看到手机号;陌生人、群成员、刚加你的人看不到。 |
4.4 在线状态的联动提示(★ 本功能最容易被忽略的一屏)
下面表格里的文字是「手机上给用户看的」文案;关于 Telegram 的规则本身(对等规则、粗略值、30 秒在线例外)属于文档说明,不上界面,见 3.4。
| 档位 | 界面提示(手机上) | 演示屏 |
|---|
| 所有人 | 无提示 | #E_B1 |
| 我的联系人 | 黄色提示条:⚠️ 你将无法看到其他人的最后上线时间与在线状态。 如果你也需要看别人,请把这一项改回「所有人」。 | #E_B2 |
| 没有人 | 黄色提示条:⚠️ 任何人都看不到你的最后上线时间与在线状态,你也将无法看到任何人的。 如果你想让个别人能看到,请用下面的「总是分享给」。 | #E_B3 |
- 提示必须在页面上常驻显示(不是 toast,点一下就没了)。
- 提示只在在线状态这一项出现;手机号没有联动。
- 被加进「总是分享给」的人,不计入这条联动的损失(他们仍然能看到你,你也能看到他们)。
- 提示的准确文案与「哪些档位触发」见待确认 ③。
4.5 设置完之后,别人会看到什么
| 展示位 | 手机号 = 没有人 | 在线状态 = 没有人 | 简介 = 没有人 |
|---|
| 资料页(别人看你的) | 手机号那一行不显示 | 「最后上线于 …」那一行不显示(你在线时也不显示「在线」) | 简介不显示(不是显示空白占位) |
| 会话列表 / 会话头部 | 不涉及 | 不显示最后上线 / 在线 | 不涉及 |
| 群成员列表 | 不涉及 | 不显示 | 不涉及 |
| 你自己看自己的资料页 | 永远显示 | 永远显示 | 永远显示 |
具体到「资料页少一行时,版式怎么收口」,需要 UI 给一版(见待确认 ⑦)。本演示没有画「对方视角」的对照屏(本次交付范围只含移动端两项设置页)。
4.6 安卓端的差异
| 点 | iOS | 安卓 |
|---|
| 入口页 | 分组卡片(无分组标题),值在行右侧 | 分组标题「账号 / 隐私」,值在行右侧,右上角保存(照安卓画板) |
| 可见性页 | 三档单选,点了即时生效 | 整页设置 + 右上角保存;未改动时「保存」为灰,改动后变紫可点 |
| 规则 / 联动提示 | — | 与 iOS 完全一致(演示屏 #E_E1 / #E_E2) |
安卓入口页画板里「手机号码」行的值是号码本身(+86 17899107165),iOS 是「不允许任何人」——这处不一致必须统一(见待确认 ①)。
五、屏清单(9 屏,与 index.html 锚点一一对应)
| 分组 | 屏 | 名称 | 优先级 | 锚点 |
|---|
| A · 入口(2) | A1 | 我的(设置页)· 入口在这 | P0 | #E_A1 |
| A2 | 我的 → 隐私和安全(改造后:改 1 行 + 加 1 行) | P0 | #E_A2 |
| B · 最后上线时间与在线状态(3) | B1 | 所有人(默认) | P0 | #E_B1 |
| B2 | 我的联系人 + 联动提示 | P1 | #E_B2 |
| B3 | 没有人 + 联动提示 | P1 | #E_B3 |
| C · 手机号码(2) | C1 | 谁能看到我的手机号码(默认:没有人) | P0 | #E_C1 |
| C2 | 我的联系人 | P0 | #E_C2 |
| E · 安卓端(2) | E1 | 安卓 · 隐私和安全(改造后) | P0 | #E_E1 |
| E2 | 安卓 · 最后上线时间与在线状态 | P1 | #E_E2 |
六、异常与边界
| # | 情况 | 处理 |
|---|
| ① | 修改后断网 / 保存失败 | 不乐观更新:页面回到原档位并提示「设置失败,请检查网络后重试」;不允许「界面变了但服务器没变」 |
| ② | 快速连点两档 | 以最后一次为准;请求按序发送,后到的旧响应丢弃(客户端要取最后一次的档位) |
| ⑥ | 档位从「所有人」改成「没有人」 | 不需要二次确认(可逆、影响面自主),但必须有 4.4 的常驻提示 |
| ⑦ | 修改在线状态档位后对方仍显示旧值 | 允许最终一致:以服务端为准,客户端本地缓存需在收到更新后失效(生效时延见 11.⑧) |
| ⑧ | 「我的联系人」为空的新用户 | 三档仍可全部选中;选「我的联系人」= 实际效果等同「没有人」,界面照常显示(不特殊提示) |
七、跨端(本次只交付移动端)
| 端 | 现状 | 本次 |
|---|
| iOS / Android | 有「我的-隐私和安全」 | ★ 本次交付(同一套规则,两套版式) |
| Web | 已有「首页-设置-隐私和安全」画板 689:24554(含「已拉黑的用户」「手机号码」) | 本次不出屏。规则与移动端一致,等 Web 端排期时按本 PRD 直接落 |
| Desktop | — | 同上,本次不做 |
| 官方客服号「U8 Chat」 | 资料页不显示在线 / 最后上线时间,也不放手机号 / 简介信息卡(既有口径,见设备管理 PRD) | 不受本设置影响(它不是普通用户,也没有这些字段) |
八、文案(建议稿,最终以 UI 为准)
8.1 入口页
| 位置 | 文案 |
|---|
| 行名 | 手机号 / 最后上线时间与在线状态 |
| 行右侧值 | 所有人 / 我的联系人 / 没有人 |
8.2 可见性页
8.3 提示与说明
| 场景 | 文案 |
|---|
| 在线状态 = 我的联系人 | 你将无法看到其他人的最后上线时间与在线状态。 如果你也需要看别人,请把这一项改回「所有人」。 |
| 在线状态 = 没有人 | 任何人都看不到你的最后上线时间与在线状态,你也将无法看到任何人的。 如果你想让个别人能看到,请用下面的「总是分享给」。 |
| 保存失败 | 设置失败,请检查网络后重试 |
页面文案与文档说明的分工(产品 2026-10-08 明确):上面三张表是只给用户看的文案 —— 手机屏上不出现讲解、不出现「见 PRD」、不出现「本次不改」这类标注;所有解释性内容都放在本 PRD 或演示页右侧说明栏。
8.4 不一致待收口(与既有文案的冲突,见待确认 ①)
| 位置 | 现在 | 问题 |
|---|
| 入口页那一行 | iOS 画板「手机号」;安卓画板「手机号码」 | 行名两套 |
| 入口页那一行的值 | iOS「不允许任何人」;安卓 +86 17899107165 | 值两套 |
| 档位文案 vs 行值 | 档位叫「没有人」,画板行值叫「不允许任何人」 | 同一件事两个词 |
| 注销账号的归属 | 画板「我的-隐私和安全」上有「注销账号」,「我的-编辑」里也有「退出账号 / 注销账号」 | 按产品口径只在编辑页,本页不放(4.1) |
九、接口与埋点(建议)
| # | 能力 | 说明 |
|---|
| ① | 读 | 一次返回两项档位(在线状态 / 手机号) |
| ② | 写档位 | 按项提交(last_seen / phone / bio),值 ∈ {everybody, contacts, nobody};幂等 |
| ④ | 生效 | 服务端为准;变更后其它端在下次拉取时更新(时延见 11.⑧) |
| ④ | 埋点 | 进入可见性页 / 改档位(记录 from→to)/ 看到联动提示 —— 用于观察「有多少人为了隐私关掉了自己看别人的能力」 |
十、相对设计稿改了什么
| 画板 | 本次怎么动 |
|---|
「我的」802:129933 | 一个字不改(入口行已有) |
「我的-隐私和安全」(iOS 1345:77991) | ★ 改 1 处:「手机号」行变成可点进入;★ 新增 1 行:「最后上线时间与在线状态」;★ 移除 1 处:画板上的「注销账号」按产品口径不放在本页(它属于「我的 → 编辑」)。其余行照画板 |
「我的-隐私和安全」(安卓 1347:81020) | 同上,照安卓版式(分组标题 + 保存) |
| 两项可见性页 | 设计稿里没有,本演示给建议稿;版式沿用「我的-编辑」的既有风格 |
十一、待确认(需要产品 / UI 拍板)
| # | 问题 | 影响 |
|---|
| ① | 入口页那一行:行名统一成「手机号」还是「手机号码」?值统一成「不允许任何人」(iOS)还是「号码本身」(安卓)?档位文案「没有人」与画板「不允许任何人」要不要统一? | 开发按哪个实现;用户看到两套会以为坏了 |
| ② | U8 已有的手机号相关开关(「通过手机号找到我 / 手机号对好友可见」)与本次的「谁能看到我的手机号码」是同一个设置还是两个?要不要把「谁能通过手机号找到我」也放进这一页? | 不统一会出现两处开关互相打架 |
| ③ | 在线状态联动的准确范围:触发联动的档位是「不是所有人」还是仅「没有人」?要不要保留 Telegram 的粗略值(最近 / 一周内 / 一月内 / 很久以前)?要不要照搬「发消息 / 读消息 / 正在输入时对方能看到你在线约 30 秒」的例外? | 直接决定提示文案与后端计算 |
| ④ | 「拉黑」与最后上线时间的关系:拉黑某人后,对方是否永远看不到你的最后上线时间(TG 的既定行为)? | 拉黑功能的既有文案与逻辑要不要跟着改 |
| ⑤ | 「我的联系人」怎么算(单向还是双向联系人、群成员算不算)? | 后端判定与前端置灰规则 |
| ⑥ | 两个默认值(新用户):在线状态 = 所有人?手机号 = 没有人(照 iOS 画板)?存量用户怎么取值(保持现状还是刷成默认)? | 上线数据表现与老用户感知 |
| ⑦ | 隐藏后资料页的版式:手机号 / 最后上线时间这两行是整行消失还是保留标签、值留空?(本 PRD 按「整行消失」写) | UI 需要给一版「对方视角」的图 |
| ⑧ | 生效时延:改完多久对别人生效?对方已缓存的旧值怎么处理(是否主动刷新)? | 后端缓存策略与用户投诉口 |
| ⑨ | 安卓的「保存」按钮:只对入口页可编辑项生效,两项可见性点进去即时生效 —— 是否按此实现? | 安卓交互与画板「保存」的语义 |
本 PRD 与同目录 index.html 配套使用:PRD 讲规则,演示讲「这屏长什么样、点哪儿去哪」。