← 逐屏讲解与可点击演示· PRD(Markdown)U8 Chat · 产品需求文档(PRD)

U8 Chat 2.0 · 隐私设置(最后上线时间与在线状态 / 手机号码)产品需求文档 PRD

项目内容
文档版本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 目标

  1. 把「手机号」这一行从只显示变成可点进入的设置页(不让它继续当装饰)。
  2. 新增一项可见性设置:最后上线时间与在线状态。
  3. 两项共用同一套规则:三档(所有人 / 我的联系人 / 没有人)—— 没有「例外」名单(2026-10-09 拍板)。
  4. 把「在线状态」这条反直觉的联动(你藏起来,也就看不到别人)在界面上明说,别让用户以为自己只赚不亏。

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 三档(单选,一个答案)

档位含义
所有人任何人(含陌生人、群成员、没加过好友的人)都能看到
我的联系人只有你的联系人能看到
没有人谁都看不到(你自己看自己的资料页永远能看到)

3.4 「最后上线时间」和「在线状态」是同一个开关

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.③)。本演示按「不给看就是不给看」的直白口径写文案。

3.5 「没有改过」的默认值(新用户,★ 待确认)

项建议默认依据
最后上线时间与在线状态所有人Telegram 默认;也是「社交产品默认」惯例
手机号码没有人照 iOS 画板(那一行的值写的就是「不允许任何人」)

两个默认值都在待确认 ⑥ 里,需要产品拍板后同步给开发。


四、功能详情

4.1 入口与入口页改造

入口路径:我的 → 隐私和安全 → 点某一项(唯一入口,没有第二个入口,也不做快捷方式)。

入口页的改造点(演示屏 #E_A2):

行本次动作行右侧值
已拉黑的用户 / 锁定码&Face ID / 登录密码 / 资金密码 / 密保问题不动(照画板)照画板
手机号★ 从「只显示」改成「可点进入」当前可见性(画板值:不允许任何人)
最后上线时间与在线状态★ 新增一行所有人(默认)
注销账号★ 不放这一页—

★ 「注销账号」不在本页(产品口径):画板「我的-隐私和安全」上画了这一行,但按产品口径它属于「我的 → 编辑」页 —— 安卓画板「我的-编辑」里就是「退出账号 / 注销账号」两行(1083:55521)。所以本页不放注销账号,本演示与画板在这一处故意不一致。

规则

  1. 三行的右侧值=当前档位的文案(所有人 / 我的联系人 / 没有人),点进去可改,改完返回时右侧值同步变化。
  2. 三行的位置:手机号在上,新增两行在下(与 Telegram 的排列顺序一致:号码 → 最后上线时间与在线状态 → 简介)。
  3. 「我的」页(#E_A1)一个字都不改,只有「隐私和安全」这一行是本次的入口。

4.2 可见性设置页(两项共用同一个版式)

页面结构(自上而下)

  1. 档位列表:三行单选(所有人 / 我的联系人 / 没有人),当前档位右侧显示紫色对勾。
  2. 说明区:一两句灰字,解释当前档位对别人意味着什么。
  3. 提示区(仅在线状态项):档位不是「所有人」时,显示黄色提示条(见 4.4)。

规则

  1. 点某一档 → 立即生效(iOS),页面留在原位,勾选与说明文案一起变(不弹窗、不二次确认)。
  2. 点「总是分享给」→ 进入名单页(4.3)。
  3. 两项的档位互相独立:手机号选「没有人」不影响在线状态的「所有人」。
  4. 返回上一级时,入口页那一行的值必须是新值(不能出现「改完了但列表还显示旧值」)。

三项各自的说明文案(建议稿,最终以 UI 为准)

项档位说明区文案
在线状态所有人这一档下,任何人(包括陌生人)都能在你的资料页看到你的最后上线时间;你在线时,会话与资料页显示「在线」。别人看到的时间是相对时间(如「3 分钟之前」)。
在线状态我的联系人只有你的联系人能看到你的最后上线时间与在线状态。
在线状态没有人(不写说明,改用黄色提示条)
手机号码没有人当前:没有人能看到你的手机号码 —— 联系人、陌生人都看不到,只有你自己和平台能看到。别人不会因为你隐藏了号码就无法给你发消息。
手机号码我的联系人只有你的联系人能在你的资料页看到手机号;陌生人、群成员、刚加你的人看不到。

4.4 在线状态的联动提示(★ 本功能最容易被忽略的一屏)

下面表格里的文字是「手机上给用户看的」文案;关于 Telegram 的规则本身(对等规则、粗略值、30 秒在线例外)属于文档说明,不上界面,见 3.4。

档位界面提示(手机上)演示屏
所有人无提示#E_B1
我的联系人黄色提示条:⚠️ 你将无法看到其他人的最后上线时间与在线状态。 如果你也需要看别人,请把这一项改回「所有人」。#E_B2
没有人黄色提示条:⚠️ 任何人都看不到你的最后上线时间与在线状态,你也将无法看到任何人的。 如果你想让个别人能看到,请用下面的「总是分享给」。#E_B3

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 讲规则,演示讲「这屏长什么样、点哪儿去哪」。*