fix(windows): 托盘图标不显示——tray_manager 原生 LoadImage 只认 .ico

用户 Windows 实测:日志"托盘已就绪"无报错、不在折叠区,但任务栏无图标。
源码级定位:tray_manager 0.5.3 Windows 原生端用
LoadImage(IMAGE_ICON, LR_LOADFROMFILE) 加载图标文件——该 Win32 API 只认
.ico,传入 png 返回 NULL → Shell_NotifyIcon 添加成功但图标为空 → 任务栏
不显示且全程无任何报错(mac 走 base64+NSImage 另一条路径所以正常)。

修复:Windows 托盘改用 assets/tray_icon_win.ico(16/24/32 三尺寸 PNG-in-ICO,
gen_app_icons.dart 生成,python struct 校验目录项 offset 严格对齐;ico 随
flutter_assets 打包,Debug/Release/Inno 全形态生效);删除无效的
tray_icon_win.png;AppTray 按平台选路径。
This commit is contained in:
dzc committed 2026-09-21 16:27:03 +08:00
1 parent 1deb3125be
commit 527baf7ec5
5 files changed
+37 -4

No files matched your search

+2 -1
View File
@@ -71,9 +71,10 @@ flutter:
uses-material-design: true
# 托盘图标(白底圆盘+logo,深浅菜单栏/任务栏均可见)与侧栏 logo
# Windows 托盘必须用 .ico(tray_manager 原生 LoadImage 只认 ico,png 静默失败)
assets:
- assets/tray_icon_mac.png
- assets/tray_icon_win.png
- assets/tray_icon_win.ico
- assets/logo.png
# HiTi Mac 驱动安装包(不进 git:放 assets/drivers/*.dmg 后重新打包;缺失时向导降级为官网链接)
- assets/drivers/