# 升级提示功能 - 快速参考

## 🚀 快速开始

### 测试升级提示功能

1. **准备测试版本文件**

在服务器创建 `last-version.json`（版本号设置为比当前版本大）：
```json
{
  "version": "0.1.2",
  "download_url": "https://example.com/update.exe",
  "changelog": "• 测试更新\n• 新功能测试",
  "force_update": false,
  "release_date": "2026-01-28"
}
```

2. **启动应用**

```bash
wails dev
```

3. **等待 5 秒**

应用启动后 5 秒会自动显示升级提示弹窗。

---

## 📁 文件清单

### 新增文件
- `frontend/src/components/UpdateNotification.vue` - 升级提示组件
- `docs/update-notification-design.md` - 设计文档
- `docs/update-notification-usage.md` - 使用指南
- `docs/update-notification-implementation.md` - 实现总结
- `docs/update-notification-quickref.md` - 本文件

### 修改文件
- `frontend/src/App.vue` - 集成自动检查逻辑
- `app.go:68` - 修复检查地址（go-desk → u-desk）
- `frontend/src/components/UpdatePanel.vue` - 地址字段设为只读

---

## 🎨 UI 预览

### 普通更新弹窗
```
┌─────────────────────────────────────────────┐
│ 🔍 发现新版本        v0.1.0 → v0.1.2  [✕]   │
├─────────────────────────────────────────────┤
│                                             │
│ 📅 发布日期    2026-01-28                   │
│ 📁 文件大小    45.2 MB                      │
│                                             │
│ 📖 更新内容                                 │
│ ┌─────────────────────────────────────────┐ │
│ │ • 测试更新                               │ │
│ │ • 新功能测试                             │ │
│ └─────────────────────────────────────────┘ │
│                                             │
│  [ 跳过此版本 ]  [ 立即更新 ↓ ]             │
│                                             │
│ ☐ 提醒我稍后更新（下次启动时提醒）          │
└─────────────────────────────────────────────┘
```

### 强制更新弹窗
```
┌─────────────────────────────────────────────┐
│ ⚠ 重要更新         v0.1.0 → v0.1.2         │
├─────────────────────────────────────────────┤
│                                             │
│ ⚠️ 此版本包含重要的安全更新和修复            │
│                                             │
│  [ 立即更新 ↓ ]                             │
└─────────────────────────────────────────────┘
```

---

## 🔧 配置选项

### 版本信息文件格式

**地址：** `https://img.1216.top/u-desk/last-version.json`

**格式：**
```json
{
  "version": "0.1.1",           // 版本号（x.y.z）
  "download_url": "https://...", // 下载地址
  "changelog": "更新日志",       // 支持换行符 \n
  "force_update": false,         // 是否强制更新
  "release_date": "2026-01-28",  // 发布日期
  "file_size": 45234567          // 文件大小（字节，可选）
}
```

### 用户配置

在 **设置 → 版本更新** 中：
- ✅ 自动检查更新 - 开启/关闭
- ✅ 检查间隔 - 1-1440 分钟
- 🔒 更新检查地址 - 只读

---

## 🎯 关键时间点

| 事件 | 时间 | 说明 |
|------|------|------|
| 应用启动 | 0s | 应用界面显示 |
| 开始检查更新 | 3s | 后台异步检查 |
| 显示弹窗 | 5s | 有更新时延迟显示 |
| 下载进度更新 | 实时 | 每 0.3 秒更新 |
| 下载完成 | - | 显示安装按钮 |
| 安装重启 | 2s | 安装成功后延迟重启 |

---

## 📊 状态流转

```
初始状态
  ↓ 点击"立即更新"
下载中（显示进度条）
  ↓ 下载完成
下载完成（显示"安装"按钮）
  ↓ 点击"安装"
安装中（显示加载动画）
  ↓ 安装成功
应用自动重启
```

---

## 🐛 常见问题

### Q: 弹窗不显示？
**A:**
1. 检查是否已是最新版本
2. 检查是否已跳过此版本
3. 检查自动检查是否开启

### Q: 如何强制显示弹窗？
**A:** 手动点击"设置 → 版本更新 → 检查更新"

### Q: 如何清除跳过记录？
**A:**
```javascript
// 在浏览器控制台执行
localStorage.removeItem('skipped_version')
```

### Q: 下载失败怎么办？
**A:** 系统支持断点续传，重新点击"立即更新"即可

---

## ✅ 测试清单

### 功能测试
- [ ] 应用启动自动检查更新
- [ ] 弹窗正确显示版本信息
- [ ] 下载按钮正常工作
- [ ] 下载进度实时更新
- [ ] 下载完成显示安装按钮
- [ ] 安装成功后应用重启
- [ ] 跳过功能正常工作
- [ ] 强制更新无法关闭

### UI 测试
- [ ] 弹窗动画流畅
- [ ] 版本徽章颜色正确
- [ ] 进度条更新平滑
- [ ] 按钮状态正确

---

## 📞 获取帮助

- **设计文档**：`docs/update-notification-design.md`
- **使用指南**：`docs/update-notification-usage.md`
- **实现总结**：`docs/update-notification-implementation.md`

---

## 🎉 完成状态

✅ **前端组件** - UpdateNotification.vue
✅ **应用集成** - App.vue 自动检查
✅ **后端接口** - 所有 API 已就绪
✅ **文档完善** - 设计、使用、实现文档
✅ **构建成功** - 前端构建无错误

**状态：✅ 已完成，可投入使用**
