278 lines
7.3 KiB
Markdown
278 lines
7.3 KiB
Markdown
# 升级提示功能使用指南
|
||
|
||
## 功能概述
|
||
|
||
新增的升级提示系统会在应用启动时自动检查更新,并在发现新版本时优雅地提示用户。整个体验流畅、专业,不打扰用户工作流。
|
||
|
||
## 主要特性
|
||
|
||
✅ **自动检测** - 应用启动后 5 秒自动检查更新
|
||
✅ **优雅提示** - 精美的弹窗设计,清晰的版本信息
|
||
✅ **实时进度** - 下载进度实时显示,包含速度和文件大小
|
||
✅ **灵活跳过** - 支持跳过非强制更新,下次不再提示
|
||
✅ **强制更新** - 重要安全更新强制安装,无法跳过
|
||
✅ **断点续传** - 下载支持断点续传,节省流量
|
||
✅ **安全安装** - 自动备份原程序,失败自动回滚
|
||
|
||
## 使用流程
|
||
|
||
### 1. 应用启动自动检查
|
||
|
||
```
|
||
应用启动
|
||
↓
|
||
等待 3 秒(避免阻塞启动)
|
||
↓
|
||
后台检查更新
|
||
↓
|
||
发现新版本?
|
||
├─ 是 → 延迟 2 秒显示升级提示弹窗
|
||
└─ 否 → 不显示,正常使用应用
|
||
```
|
||
|
||
### 2. 升级提示弹窗
|
||
|
||
当检测到新版本时,会显示精美的升级提示弹窗:
|
||
|
||
**弹窗包含:**
|
||
- 📌 当前版本 → 最新版本对比
|
||
- 📅 发布日期
|
||
- 📁 文件大小
|
||
- 📖 更新日志(版本更新内容)
|
||
- 🎯 操作按钮(跳过/立即更新)
|
||
- ⏰ 稍后提醒选项
|
||
|
||
**三种状态:**
|
||
1. **初始状态** - 显示版本信息和更新日志
|
||
2. **下载状态** - 显示下载进度和速度
|
||
3. **完成状态** - 下载完成,提示点击安装
|
||
|
||
### 3. 用户选择
|
||
|
||
#### 选择 A:立即更新
|
||
```
|
||
点击"立即更新"
|
||
↓
|
||
开始下载(显示进度条)
|
||
↓
|
||
下载完成
|
||
↓
|
||
点击"安装"
|
||
↓
|
||
确认对话框
|
||
↓
|
||
自动重启应用
|
||
```
|
||
|
||
#### 选择 B:跳过此版本
|
||
```
|
||
点击"跳过此版本"
|
||
↓
|
||
勾选"提醒我稍后更新"?
|
||
├─ 是 → 下次启动继续提示
|
||
└─ 否 → 记住选择,不再提示此版本
|
||
↓
|
||
关闭弹窗
|
||
```
|
||
|
||
### 4. 强制更新
|
||
|
||
对于重要的安全更新,弹窗会:
|
||
- 🔴 显示红色"重要更新"徽章
|
||
- ⚠️ 显示强制更新警告信息
|
||
- 🚫 禁用关闭按钮(无法跳过)
|
||
- ✅ 只提供"立即更新"按钮
|
||
|
||
## 配置选项
|
||
|
||
### 在"设置 → 版本更新"中配置:
|
||
|
||
#### 自动检查更新
|
||
- **开启** - 应用启动时自动检查(推荐)
|
||
- **关闭** - 不自动检查,需要手动检查
|
||
|
||
#### 检查间隔
|
||
- 范围:1-1440 分钟(1 分钟 - 24 小时)
|
||
- 推荐设置:60 分钟(1 小时)
|
||
- 说明:两次自动检查的最小间隔时间
|
||
|
||
#### 更新检查地址
|
||
- 系统配置,不可修改
|
||
- 当前地址:`https://img.1216.top/u-desk/last-version.json`
|
||
|
||
## 手动检查更新
|
||
|
||
如果关闭了自动检查,或者想立即检查:
|
||
|
||
1. 打开"设置"面板
|
||
2. 切换到"版本更新"标签
|
||
3. 点击"检查更新"按钮
|
||
4. 查看更新结果
|
||
|
||
## 版本信息文件
|
||
|
||
升级系统会读取远程的版本信息文件:
|
||
|
||
**文件地址:** `https://img.1216.top/u-desk/last-version.json`
|
||
|
||
**文件格式:**
|
||
```json
|
||
{
|
||
"version": "0.1.1",
|
||
"download_url": "https://img.1216.top/u-desk/go-desk-0.1.1-windows-amd64.exe",
|
||
"changelog": "• 修复文件列表刷新问题\n• 优化启动性能\n• 新增暗色模式支持",
|
||
"force_update": false,
|
||
"release_date": "2026-01-28",
|
||
"file_size": 45234567
|
||
}
|
||
```
|
||
|
||
**字段说明:**
|
||
- `version` - 最新版本号(格式:x.y.z)
|
||
- `download_url` - 安装包下载地址
|
||
- `changelog` - 更新日志(支持换行符 `\n`)
|
||
- `force_update` - 是否强制更新(true/false)
|
||
- `release_date` - 发布日期(格式:YYYY-MM-DD)
|
||
- `file_size` - 文件大小(字节,可选)
|
||
|
||
## 下载和安装
|
||
|
||
### 下载特性
|
||
- ✅ 支持断点续传(中断后可继续)
|
||
- ✅ 实时显示下载进度
|
||
- ✅ 显示下载速度和剩余时间
|
||
- ✅ 下载完成后自动计算 MD5 和 SHA256 哈希
|
||
|
||
### 安装特性
|
||
- ✅ 自动备份当前版本
|
||
- ✅ 安装失败自动回滚
|
||
- ✅ 安装成功自动重启
|
||
- ✅ 支持 .exe 和 .zip 格式
|
||
|
||
### 文件存储位置
|
||
- **配置文件**:`~/.u-desk/update_config.json`
|
||
- **下载目录**:`~/.u-desk/downloads/`
|
||
- **备份目录**:`~/.u-desk/backups/`
|
||
|
||
## 常见问题
|
||
|
||
### Q1: 为什么自动检查更新后没有弹窗?
|
||
**A:** 可能原因:
|
||
1. 已是最新版本(无更新)
|
||
2. 此版本已选择"跳过"且未勾选"稍后提醒"
|
||
3. 自动检查功能已关闭
|
||
|
||
**解决方法:**
|
||
- 手动点击"检查更新"按钮
|
||
- 检查配置中的"自动检查更新"开关
|
||
|
||
### Q2: 下载失败了怎么办?
|
||
**A:**
|
||
- 下载支持断点续传,可以点击重试
|
||
- 系统会自动从断点继续下载
|
||
- 如果多次失败,检查网络连接和下载地址
|
||
|
||
### Q3: 安装失败会怎样?
|
||
**A:**
|
||
- 系统会自动回滚到备份版本
|
||
- 不会影响当前使用
|
||
- 可以查看错误日志了解失败原因
|
||
|
||
### Q4: 如何恢复跳过的版本提示?
|
||
**A:**
|
||
方法 1:手动点击"检查更新"
|
||
方法 2:清除浏览器 localStorage 中的 `skipped_version`
|
||
|
||
### Q5: 强制更新可以跳过吗?
|
||
**A:**
|
||
- 不可以。强制更新是为了修复严重的安全问题或数据损坏问题
|
||
- 不安装强制更新可能会影响应用正常使用
|
||
|
||
### Q6: 下载中断后下次如何继续?
|
||
**A:**
|
||
- 系统会自动检测已下载的部分
|
||
- 重新点击"立即更新"会从断点继续
|
||
- 不会重复下载已完成的文件
|
||
|
||
## 技术实现
|
||
|
||
### 前端组件
|
||
- **UpdateNotification.vue** - 升级提示弹窗组件
|
||
- **App.vue** - 集成自动检查逻辑
|
||
|
||
### 后端接口
|
||
- **CheckUpdate()** - 检查更新
|
||
- **DownloadUpdate()** - 下载更新包
|
||
- **InstallUpdate()** - 安装更新
|
||
- **GetUpdateConfig()** - 获取更新配置
|
||
- **SetUpdateConfig()** - 保存更新配置
|
||
|
||
### 事件系统
|
||
- **download-progress** - 下载进度事件
|
||
- **download-complete** - 下载完成事件
|
||
|
||
### 配置文件
|
||
**~/.u-desk/update_config.json**
|
||
```json
|
||
{
|
||
"current_version": "0.1.0",
|
||
"last_check_time": "2026-01-28T18:51:00+08:00",
|
||
"auto_check_enabled": true,
|
||
"check_interval_minutes": 60,
|
||
"check_url": "https://img.1216.top/u-desk/last-version.json"
|
||
}
|
||
```
|
||
|
||
## 最佳实践
|
||
|
||
### 对于用户
|
||
1. ✅ 保持自动检查开启,及时获取更新
|
||
2. ✅ 选择"稍后提醒"而非"跳过",避免错过重要更新
|
||
3. ✅ 安装前保存当前工作,避免数据丢失
|
||
4. ✅ 遇到强制更新立即安装,确保安全性
|
||
|
||
### 对于开发者
|
||
1. ✅ 版本信息文件保持最新
|
||
2. ✅ 更新日志清晰详细
|
||
3. ✅ 重要更新标记为强制更新
|
||
4. ✅ 测试安装包的完整性
|
||
|
||
## 更新日志设计建议
|
||
|
||
### 好的更新日志
|
||
```
|
||
• 修复文件列表刷新后顺序错乱的问题
|
||
• 优化启动性能,加载时间减少 30%
|
||
• 新增暗色模式支持
|
||
• 修复 #123 问题:数据库连接失败
|
||
|
||
注意:此版本包含重要的安全修复,建议立即更新
|
||
```
|
||
|
||
### 不好的更新日志
|
||
```
|
||
bug fixes
|
||
performance improvements
|
||
new features
|
||
```
|
||
|
||
**建议:**
|
||
- ✅ 列出具体的改动
|
||
- ✅ 说明对用户的影响
|
||
- ✅ 标注重要性和紧急性
|
||
- ✅ 使用清晰的格式(项目符号)
|
||
|
||
---
|
||
|
||
## 总结
|
||
|
||
新的升级提示系统提供了专业、流畅、友好的更新体验:
|
||
|
||
🎯 **自动化** - 后台检查,无需人工干预
|
||
💎 **精美设计** - 现代化的 UI,清晰的信息层次
|
||
⚡ **高效流畅** - 断点续传,实时进度
|
||
🔒 **安全可靠** - 备份回滚,哈希验证
|
||
👍 **用户友好** - 灵活跳过,稍后提醒
|
||
|
||
享受无缝的更新体验!
|