dzc
|
7897e77c52
|
版本号
|
2026-09-23 18:45:57 +08:00 |
|
dzc
|
6a9dbf9080
|
11
|
2026-09-23 18:11:35 +08:00 |
|
dzc
|
bf0de9b8b5
|
chore(installer): x64→x64compatible 消除 Inno 6.7 deprecation 警告(6.3+ 推荐写法,产物无差异)
|
2026-09-21 19:25:42 +08:00 |
|
dzc
|
1f0f5b4503
|
fix(windows): 全环境统一软件渲染——根治多机白屏(RDP/老显卡/驱动差异)
用户实测三台电脑(Win10×2/Win11×1)安装后白屏,远程与非远程均有;进程与
HTTP 服务完全健康(manifest 可访问、cmd 无报错)——纯渲染层失败。属于
Flutter Windows 引擎 GPU/ANGLE 渲染在真实环境的已知兼容性问题
(flutter/flutter#74856:RDP 会话 OpenGL 不可用白屏;老/虚拟显卡同理)。
方案:wWinMain 入口(引擎创建前)设置 FLUTTER_ENGINE_SWITCHES=
--enable-software-rendering,全部环境统一软件渲染。本应用为轻量状态页
(列表/卡片/图标),软件渲染性能无感;换来 RDP、老显卡、驱动缺失等
一切图形环境可用。此前 ANGLE_PLATFORM_BACKEND=d3d9 试验失败(Flutter
自带的 ANGLE 仅含 d3d11 后端),软件渲染是为该场景设计的官方开关。
|
2026-09-21 19:18:56 +08:00 |
|
dzc
|
06203a30d5
|
chore: 集成 VC++ 运行库 dll
|
2026-09-21 18:35:58 +08:00 |
|
dzc
|
733e801e78
|
chore: 集成 VC++ 运行库 dll
|
2026-09-21 18:25:00 +08:00 |
|
dzc
|
634d100542
|
feat(windows): 集成 VC++ 运行库到安装包(干净电脑缺 vcruntime140 等导致启动报错)
flutter_windows.dll 与 HiTi SDK 均动态依赖 VC++ runtime,开发机因 VS 而有、
干净电脑没有(用户实测:他人电脑安装后启动弹找不到 dll)。
方案=应用本地部署(微软官方允许):从 VS 的 VC\Redist 拷运行库 dll 到
windows/vendor/vcruntime/(gitignore 不忽略,随仓库),CMake POST_BUILD
自动拷到 exe 旁,安装包随之分发。
|
2026-09-21 18:20:17 +08:00 |
|
dzc
|
dd9b661516
|
fix(installer): 缺中文语言组件时编译报错——默认改用英文向导(注释 Languages 段并留说明)
|
2026-09-21 18:09:23 +08:00 |
|
dzc
|
fb399ae8f6
|
fix(windows): 全量代码审查修复——中文乱码风险/Inno 兼容/ffi 布局自检/部署说明
系统性把 mac 踩过的坑逐一在 Windows 对应路径排查后修复四处:
1. runner 加 /utf-8 编译选项(高危):MSVC 默认按系统代码页(中文 Windows=GBK)
解析 UTF-8 源码,main.cpp 的 L"资安信插件助手" 窗口标题会乱码
2. installer.iss 的 x64compatible → x64:前者需 Inno 6.3+,旧版 iscc 直接报错
3. PavoApi 构造加结构体布局 assert(80/32/16/48 字节,对齐 C# 实机验证值),
Windows 首跑(debug)即暴露 ffi 对齐差异
4. README 补 Windows 部署注意:VC++ Redistributable(PavoApiW_x64.dll 可能
动态依赖 vcruntime140.dll)、SmartScreen 未签名提示、Inno 6.x 要求
其余复查项确认无问题:reg 命令引号(空格路径安全)、Dart/Inno 的 Run 键名
一致(ZaxDesktopPlugin)、vendor DLL 拷贝用生成器表达式(Debug/Release 通用)、
pavo 全部 ffi 调用在 Isolate.run、scheme 注册表路径拼接、关窗拦截走
window_manager 的 WM_CLOSE 主路径(无 mac 的 _close: 私有 selector 问题)。
|
2026-09-21 14:22:16 +08:00 |
|
dzc
|
3ecac9a302
|
feat: Phase 4 收尾 + Phase 5 打包(首启向导/开机自启/URL scheme 闭环/mac dmg)
Phase 4 剩余三项:
- 首次引导向导(setup/first_run + ui/setup_wizard):服务自检(含 C# 助手共存
提示)→ 打印机检测与 HiTi 驱动安装指引(官网链接/重新检测,mac 与 win 文案
分支,允许无打印机完成)→ 开机自启开关 + scheme 注册;侧栏底部常驻设置区
(自启开关 + 重新运行引导)
- 开机自启(setup/autostart):mac 写 LaunchAgent(RunAtLoad 一次性,不用
KeepAlive——托盘退出不能被拉回);Windows 走 HKCU Run(reg 命令免 win32 依赖)
- URL scheme 闭环:单实例唤醒端口 38210(setup/single_instance)——zaxprint://
唤起或重复双击启动第二进程时通知常驻实例弹窗后自退,跨平台一致(弃用
app_links 的 mac 事件转发不确定性);Windows 启动时幂等注册 HKCU scheme;
前端 cardPrinter.ts 加 launchAgent()(zaxprint://open),开卡抽屉离线时显示
"启动打印助手"按钮,点击唤起后 1s×6 轮询自动上线(biz 前端改动待用户提交)
Phase 5:
- tool/package_macos.sh:构建 → ad-hoc 就地签名(--deep,勿加 --options=runtime:
hardened runtime 库校验会因 ad-hoc 无 Team ID 拒载 framework,实测踩坑)→
hdiutil dmg;实测产出 22MB dmg + 签名后冒烟通过
- windows/installer.iss:Inno Setup 安装包脚本(快捷方式/桌面图标/开机自启
Tasks/zaxprint scheme 注册与卸载清理/HiTi SDK DLL 随 Release 目录打包)
依赖 +url_launcher +shared_preferences;13 测试全过、analyze 零问题。
|
2026-09-21 13:51:42 +08:00 |
|
dzc
|
bee734fd5b
|
feat: 后台托盘 + 资安信品牌化 + 修复布局断言(Phase 4 部分)
- 后台托盘(mac/Windows):window_manager 拦截关窗改隐藏,服务持续运行;
托盘单击恢复窗口、右键菜单(显示主界面/退出),退出入口仅放托盘菜单
- 品牌:App 更名"资安信插件助手"(mac PRODUCT_NAME/xib、win main.cpp+Runner.rc(code_page 65001)、
MaterialApp/侧栏/托盘 tooltip/日志);图标全家桶换资安信盾牌 logo
(tool/gen_app_icons.dart 生成 mac AppIcon 7 尺寸/win ICO 7 尺寸/托盘白底圆盘版/assets logo)
- 修复启动布局断言:SliverList 内 Row(stretch) 需 IntrinsicHeight 包裹,
否则子项收到 h=Infinity 约束(用户实测报错,test/ui_smoke_test.dart 守护复现)
- Agent.stop 幂等(托盘退出与窗口销毁竞态安全)
- 测试修复:smoke 测试改 tester.runAsync 包真实 socket I/O(fake async zone 里会永久挂起)、
显式 pump 替代 pumpAndSettle;13 个测试全过,analyze 零问题,release 构建实测通过
|
2026-09-21 13:16:23 +08:00 |
|
dzc
|
0a78ff1b58
|
feat: Windows PavoApi ffi 直打后端(Phase 3 代码完成,待实机验收)
- lib/print/pavo/:PavoApiW_x64.dll 的 dart:ffi 绑定(结构体布局对齐 C#,W 后缀导出名回退兼容)
- pavo_printer.dart:枚举(UTF-8/UTF-16 自动解码)/状态/色带信息/单卡直打/忙碌轮询(3 分钟超时)/LayerHolder 非托管内存管理
- pavo_backend.dart:全部 ffi 调用与像素转换跑在 Isolate.run,主 isolate HTTP 服务零阻塞
- lib/image/card_image.dart:PNG data URL → 纵横比选卡面 → 手动 alpha 铺白底 → BGR24/Gray8 紧凑像素(image 包 compositeImage 对全透明像素非 src-over 语义,改为逐像素混合对齐 C#)
- windows/ 目录:从 Flutter SDK windows.tmpl 手动实例化(mac 上 flutter create 拒绝生成的绕过),窗口标题"饭卡打印助手"
- windows/vendor/:收录 SDK 的 PavoApiW_x64.dll/PavoCardSDK_x64.dll/HeatTB3.dll/heatthcd.bin,CMake POST_BUILD 自动拷到 exe 旁
- backend.dart 工厂接通 Windows 分支;analyze 零问题、单测 12 个全过
|
2026-09-21 12:19:07 +08:00 |
|