# 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 = `。 ## 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)需保证按钮与协议入口不被遮挡