Files
2026-01-28 22:13:55 +08:00

80 lines
3.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# iOS Widget任务清单V1 写死文案)
> 说明:本清单根据 `plan.md` 拆解,要求“可执行、可验收、可标记”。
> 标记规则:执行完成后将对应项从 `- [ ]` 改为 `- [x]`,并把“状态”改为 **已完成**;进行中改为 **进行中**;阻塞写明原因与解除条件。
## 0. 清单状态说明
- **状态**:未开始 / 进行中 / 已完成 / 阻塞
- **阻塞**:必须写明阻塞点与解除条件
## 1. 预构建 iOS 原生工程(必须)
- [x] **执行 prebuild 生成 `ios/` 目录**
- **状态**:已完成(已执行 `npx expo prebuild -p ios --no-install`,已生成 `client/ios/`
- **命令**
```bash
cd client
npx expo prebuild -p ios
```
- **产出**`client/ios/`(包含 Xcode 工程)
- **验收**`client/ios/` 目录存在,并能在 Xcode 打开
## 2. 创建 WidgetKit ExtensionXcode 操作)
- [x] **在 Xcode 新建 Widget ExtensionWidgetKit**
- **状态**:已完成(已创建 Target情绪小组件下一步把 Swift 文件加入该 Target 并跑模拟器验证)
- **操作**
- 打开 `client/ios/*.xcworkspace`(优先 workspace
- `File -> New -> Target... -> Widget Extension`
- 名称建议:`MindfulnessWidget`(或你喜欢的命名)
- **验收**:工程里新增 Widget target能编译通过
- **下一步(必须做)**
-`client/ios/MindfulnessWidget/MindfulnessWidget.swift` 加入 Target Membership`情绪小组件`
- 如果 Xcode 自动生成了同类的 Widget 主文件(例如 `情绪小组件.swift` / `*_Bundle.swift`),请确保最终只有一个 `@main struct ...: Widget` 入口(避免重复入口导致编译失败)
## 3. 实现写死文案3 个尺寸都要)
- [x] **实现 Small/Medium/Large 三种尺寸布局**
- **状态**:已完成(已提供 `client/ios/MindfulnessWidget/MindfulnessWidget.swift` 写死文案 + 三尺寸布局代码骨架)
- **文案(写死)**:可先用一条默认文案,例如:`你已经很努力了,今天也值得被温柔对待。`
- **要求**
- Small一行标题 + 主文案(可截断)
- Medium主文案更完整可多行
- Large增加留白与排版层次例如标题 + 文案 + 小注脚)
- **验收**:三种尺寸均显示美观,无溢出/遮挡
## 4. 点击跳转到 HomeDeep Link
- [x] **为 Widget 配置点击跳转 URL**
- **状态**:已完成(代码骨架已使用 `.widgetURL(URL(string: \"client:///(app)/home\")!)`
- **URL**`client:///(app)/home`
- **实现**:在 Widget 中设置 `.widgetURL(URL(string: \"client:///(app)/home\")!)`
- **验收**:点击小组件能打开 App 并进入 Home
## 5. 本地验证
- [ ] **在 iOS 模拟器运行并添加桌面小组件**
- **状态**:阻塞(需要本机 Xcode Run 安装后在模拟器桌面添加 Widget 验证)
- **步骤**
- Xcode Scheme 选择主 App一般是 `client`),选择模拟器,点击 Run 安装 App
- 回到桌面长按 -> “+” -> 搜索小组件 -> 添加 Small/Medium/Large
- **验收**:小组件显示正确,点击跳转正确
- **排查**
- 桌面搜索不到:通常是没有 Run 安装过主 App或 Widget target 未加入编译
- 点击不跳转:确认 Widget 里 `widgetURL``client:///(app)/home`,且 `app.json``scheme``client`
## 6. 文档补充(可选但建议)
- [x] **在 `client/README.md` 增加“小组件开发V1 写死文案)”说明**
- **状态**:已完成
- **内容**
- Expo Go 不支持
- prebuild 命令
- Xcode 创建 Widget Extension 的步骤
- deep link`client:///(app)/home`
- **验收**:新同学照 README 可复现