新增文档说明
This commit is contained in:
103
spec_kit/Splash Consent/spec.md
Normal file
103
spec_kit/Splash Consent/spec.md
Normal file
@@ -0,0 +1,103 @@
|
||||
# Splash Consent(高层规范)
|
||||
|
||||
## 1. 背景与目标
|
||||
|
||||
客户端需要一个开屏页(Splash/Welcome),用于展示品牌视觉并在**首次加载**时让用户同意隐私协议与用户使用协议。用户同意后进入后续流程(Onboarding/App)。
|
||||
|
||||
### 目标
|
||||
|
||||
- **视觉开屏**:使用 `client/assets/images/index/` 下的图片资源作为主视觉
|
||||
- **首次同意**:底部渐变按钮仅在首次加载时出现,用于“同意并继续”
|
||||
- **协议入口**:按钮下方提供「隐私协议」「用户使用协议」入口,用户可点击查看
|
||||
- **状态持久化**:同意后不再显示该按钮(后续启动直接进入后续流程)
|
||||
|
||||
### 非目标(本阶段不做)
|
||||
|
||||
- 不实现复杂的协议版本管理(如协议更新后重新弹出),后续可扩展
|
||||
- 不实现后端拉取协议内容(可先使用本地静态页面或外链)
|
||||
|
||||
## 2. 范围与交付物
|
||||
|
||||
### 范围
|
||||
|
||||
- 新增开屏页 UI 与路由接入
|
||||
- 新增“首次同意”状态的本地持久化
|
||||
- 协议入口(跳转到 WebView/外部浏览器/内置页面,方案在实现阶段确定)
|
||||
|
||||
### 交付物
|
||||
|
||||
- 开屏页(含图片、按钮、协议入口)
|
||||
- 本地持久化 key 约定与读写逻辑
|
||||
- README/文档更新(可选)
|
||||
|
||||
## 3. 视觉与交互需求
|
||||
|
||||
### 3.1 主视觉
|
||||
|
||||
- 使用 `client/assets/images/index/` 下的图片资源(例如 `index_flowers.png`)
|
||||
- 布局建议:
|
||||
- 图片居中或铺满上半部分(按实际设计微调)
|
||||
- 适配不同屏幕尺寸,确保不变形/不裁切关键内容
|
||||
|
||||
### 3.2 底部渐变按钮(仅首次出现)
|
||||
|
||||
- **出现条件**:仅在首次加载且未同意协议时显示
|
||||
- **按钮文案**:建议“同意并继续”(文案可后续调整,需支持 i18n)
|
||||
- **按钮渐变色**:从 `#F69F7B` 到 `#F99CC0`
|
||||
- **点击行为**:
|
||||
- 写入本地状态:用户已同意
|
||||
- 跳转到后续流程入口(例如 Onboarding 或 Home 的启动分发)
|
||||
|
||||
### 3.3 协议入口
|
||||
|
||||
- 位于按钮下方,展示:
|
||||
- **隐私协议**
|
||||
- **用户使用协议**
|
||||
- 点击行为:打开对应协议内容
|
||||
- 支持外链或内置页面(实现阶段确认)
|
||||
|
||||
## 4. 首次加载判定与持久化
|
||||
|
||||
### 4.1 判定规则
|
||||
|
||||
- **首次加载定义**:App 首次启动且用户未完成协议同意
|
||||
|
||||
### 4.2 存储 Key(建议)
|
||||
|
||||
- `consent.accepted`: boolean
|
||||
|
||||
> 说明:后续如需协议版本化,可扩展为 `consent.versionAccepted = <version>`。
|
||||
|
||||
## 5. 路由与流程(与现有客户端集成)
|
||||
|
||||
### 5.1 流程顺序(建议)
|
||||
|
||||
1. App 启动
|
||||
2. 若 `consent.accepted !== true`:进入开屏页(展示按钮与协议入口)
|
||||
3. 用户点击“同意并继续”后:
|
||||
- 写入 `consent.accepted=true`
|
||||
- 进入后续流程(例如 Onboarding/App Shell 的启动分发)
|
||||
|
||||
### 5.2 与现有功能的关系
|
||||
|
||||
- 开屏页位于 Onboarding 之前(更符合“先同意协议再使用”的要求)
|
||||
- 同意后按既有规则继续:
|
||||
- 已完成 onboarding:进入 Home
|
||||
- 未完成 onboarding:进入 Onboarding
|
||||
|
||||
## 6. 验收标准
|
||||
|
||||
- 首次启动:
|
||||
- 出现开屏页,展示图片
|
||||
- 底部渐变按钮可见,颜色正确(`#F69F7B` → `#F99CC0`)
|
||||
- “隐私协议/用户使用协议”可点击打开
|
||||
- 点击“同意并继续”后进入后续流程
|
||||
- 非首次启动:
|
||||
- 不再出现“同意按钮”(且开屏页按产品要求可直接跳过或不再展示)
|
||||
- 直接进入后续流程
|
||||
|
||||
## 7. 风险与注意事项
|
||||
|
||||
- 协议内容来源若为外链,需要保证链接长期可用;若为本地页面,需要考虑后续更新机制
|
||||
- iOS 不同机型安全区(底部 Home Indicator)需保证按钮与协议入口不被遮挡
|
||||
|
||||
Reference in New Issue
Block a user