- 删除通用 desktop target,重命名 platform targets 为简短形式 (desktop-mac/win/linux)
- 构建产物文件名统一为 nex-{os}-{arch}[.exe] 格式
- Windows 托盘图标使用 .ico 格式(运行时按平台选择)
- Windows 原生对话框使用 user32.MessageBoxW 替代 msg * 命令
- 更新 README.md 和 package-macos.sh 中的引用
- 添加单元测试覆盖 MessageBoxW 封装和图标选择逻辑
- 同步更新 desktop-app spec 规范文档
29 lines
1.8 KiB
Markdown
29 lines
1.8 KiB
Markdown
## 1. Makefile 重构
|
||
|
||
- [x] 1.1 删除通用 `desktop` target 及其相关 `.PHONY` 声明
|
||
- [x] 1.2 将 `desktop-darwin` 重命名为 `desktop-mac`,产物文件名改为 `nex-mac-arm64` 和 `nex-mac-amd64`
|
||
- [x] 1.3 将 `desktop-windows` 重命名为 `desktop-win`,产物文件名改为 `nex-win-amd64.exe`
|
||
- [x] 1.4 将 `desktop-linux` 产物文件名改为 `nex-linux-amd64`
|
||
- [x] 1.5 更新 `.PHONY` 声明和 `all` target(如引用了旧名称)
|
||
|
||
## 2. Windows 原生对话框
|
||
|
||
- [x] 2.1 在 `backend/cmd/desktop/main.go` 中添加 Windows 平台的 `user32.MessageBoxW` 调用封装(`syscall.NewLazyDLL` + `syscall.StringToUTF16Ptr`),在 `showError`/`showAbout` 的 Windows `runtime.GOOS` 分支内直接调用
|
||
- [x] 2.2 替换 `showError` 函数的 Windows 分支,使用 `MessageBoxW` 替代 `msg *`
|
||
- [x] 2.3 替换 `showAbout` 函数的 Windows 分支,使用 `MessageBoxW` 替代 `msg *`
|
||
|
||
## 3. 系统托盘图标修复
|
||
|
||
- [x] 3.1 修改 `setupSystray` 函数中的图标加载逻辑,根据 `runtime.GOOS` 在 Windows 上加载 `assets/icon.ico`,其他平台加载 `assets/icon.png`
|
||
|
||
## 4. 文档和脚本更新
|
||
|
||
- [x] 4.1 更新 `README.md` 中的构建命令引用(`desktop-darwin` → `desktop-mac`,`desktop-windows` → `desktop-win`,`desktop-linux` 保持不变或改为 `desktop-linux`)
|
||
- [x] 4.2 更新 `scripts/build/package-macos.sh` 中对 `desktop-darwin` 的引用
|
||
|
||
## 5. 测试验证
|
||
|
||
- [x] 5.1 为 `showError`/`showAbout` 的 Windows `MessageBoxW` 封装编写单元测试(验证参数传递和调用正确性)
|
||
- [x] 5.2 为图标加载的平台选择逻辑编写单元测试(验证 Windows 选 `.ico`,其他选 `.png`)
|
||
- [x] 5.3 运行 `make desktop-win` 在 Windows 上验证:产物有 `.exe` 后缀、双击无控制台窗口、托盘图标正常显示、错误对话框使用原生样式
|