新增文档说明

This commit is contained in:
吕新雨
2026-01-29 23:31:12 +08:00
parent 0dd84b1873
commit d08deef478
22 changed files with 2079 additions and 2 deletions

View File

@@ -0,0 +1,109 @@
# Splash Consent任务清单
> 说明:本清单根据 `plan.md` 拆解,要求“可执行、可验收、可标记”。
> 标记规则:执行完成后将对应项从 `- [ ]` 改为 `- [x]`,并把“状态”改为 **已完成**;进行中改为 **进行中**;阻塞写明原因与解除条件。
## 0. UI 参考(本次实现对齐)
- **参考截图**:你提供的开屏页样式(花束插画 + 文案 + 圆角渐变按钮 + 协议入口)
- **图片资源**`client/assets/images/index/index_flowers.png`
- **按钮渐变色**`#F69F7B``#F99CC0`
- **交互约束**
- 仅首次(未同意)显示“同意按钮 + 协议入口”
- 同意后写入本地 `consent.accepted=true`,并进入既有启动分发 `app/index.tsx`
## 1. 依赖与基础设施
- [ ] **安装并接入渐变组件Expo 官方)**
- **状态**:未开始
- **命令**
```bash
cd client
pnpm add expo-linear-gradient
```
- **验收**:项目可正常启动,页面可渲染渐变按钮
- [ ] **确认外部链接打开方式expo-web-browser可用**
- **状态**:未开始
- **说明**:已存在依赖则跳过安装;否则安装 `expo-web-browser`(当前项目初始化模板通常已包含)
- **验收**:能通过代码打开 `https://example.com/*` 外链
## 2. 本地存储:协议同意状态
- [ ] **在 `src/storage/appStorage.ts` 增加 consent 读写方法**
- **状态**:未开始
- **Key**`consent.accepted`
- **新增 API建议**
- `getConsentAccepted(): Promise<boolean>`
- `setConsentAccepted(accepted: boolean): Promise<void>`
- **验收**:不在 UI 代码里硬编码 key重启后状态仍然保留
## 3. 路由与启动分发接入
- [ ] **新增开屏路由:`app/(splash)/splash.tsx`**
- **状态**:未开始
- **要求**
- 展示主视觉图片(`index_flowers.png`
- 底部区域包含:渐变按钮 + 协议入口(仅未同意时显示)
- **验收**:路由可访问并正常渲染 UI
- [ ] **修改 `app/index.tsx`:增加 consent gate**
- **状态**:未开始
- **规则**
-`consent.accepted !== true`:跳转到 `/(splash)/splash`
- 否则沿用原逻辑Onboarding / Home
- **验收**:首次启动先到开屏;同意后进入既有分发
## 4. 开屏页 UI 落地(对齐参考图)
- [ ] **布局与样式实现(适配安全区)**
- **状态**:未开始
- **布局建议(可微调)**
- 顶部:插画居中,`resizeMode="contain"`
- 中部:主文案(支持 i18n
- 底部:渐变按钮(圆角/阴影轻微)+ 协议入口(文本按钮)
- 注意底部 Home Indicator 安全区
- **验收**:不同屏幕尺寸下不遮挡、不溢出,整体视觉接近参考图
- [ ] **渐变按钮(仅首次出现)**
- **状态**:未开始
- **颜色**`#F69F7B``#F99CC0`
- **点击行为**
- `setConsentAccepted(true)`
- `router.replace('/')`(回到启动分发)
- **验收**:点击后按钮不再出现(重启仍不出现),并进入后续流程
- [ ] **协议入口(外部链接,占位 URL**
- **状态**:未开始
- **链接**
- 隐私协议:`https://example.com/privacy`
- 用户使用协议:`https://example.com/terms`
- **打开方式**:优先 `expo-web-browser`,兜底 `Linking.openURL`
- **验收**:点击可打开外链;失败时不崩溃(可 toast/alert 提示)
## 5. i18n 文案补齐
- [ ] **新增开屏相关 i18n key至少 zh-CN/en尽量补齐 5 语)**
- **状态**:未开始
- **建议 key**
- `consent.title`(可选)
- `consent.subtitle`(可选)
- `consent.agree`
- `consent.privacy`
- `consent.terms`
- **验收**:开屏页不出现硬编码长句;切换语言可生效
## 6. 自测与验收
- [ ] **首次启动流程自测**
- **状态**:未开始
- **路径**Splash显示按钮/协议入口)→ 同意 → 进入 `app/index.tsx` 分发Onboarding/Home
- **验收**:与 `spec.md` / `plan.md` 验收一致
- [ ] **非首次启动流程自测**
- **状态**:未开始
- **路径**:直接进入 `app/index.tsx` 分发(不再出现同意按钮与协议入口)
- **验收**:同意状态持久化生效