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:
1 parent
1deb3125be
commit
527baf7ec5
5 files changed
+37
-4
No files matched your search
@@ -25,7 +25,7 @@ class AppTray with TrayListener, WindowListener {
|
||||
await windowManager.setPreventClose(true);
|
||||
|
||||
await trayManager.setIcon(
|
||||
Platform.isMacOS ? 'assets/tray_icon_mac.png' : 'assets/tray_icon_win.png',
|
||||
Platform.isMacOS ? 'assets/tray_icon_mac.png' : 'assets/tray_icon_win.ico',
|
||||
);
|
||||
await trayManager.setToolTip('资安信插件助手 · 饭卡打印(后台运行中)');
|
||||
await trayManager.setContextMenu(_menu);
|
||||
|
||||
Reference in new issue
Block a user