导航抵达通知
普通启动工具箱时注册 Microsoft.Windows.AppNotifications;界面探针和 --offline-preview 不注册、不发送通知。星系自动导航和星系内导航都接入完成事件。只有经过 Running → Completed 且游戏位置、指挥官、会话一致时才通知一次。停靠目标还要确认目标 MarketID 与实际已停靠站点一致。停止、失败和已经在目的地时的空运行不通知。
一键重进、大退重启、启动游戏以及飞船保护重启也接入通知。会话控制器发布带操作 ID 的结构化事件,进程启动完成仅进入等待阶段。通知还需确认同一安装路径与进程启动时间、指挥官身份、更新后的 LoadGame、Location 和可游玩 Status;旧档案、主菜单、加载中、错误进程、失败及取消均不发送完成通知。只订阅现有操作,不改变重进、大退或保护的执行方式。当前底层重进入口未启用时仍保持原有状态;通知适配不会启用它。
Windows 负责原生通知外框和通知中心。通知包含 728×360 的截图卡片、目的地正文和点击操作。导航通知点击打开星图或当前星系页面,会话就绪通知点击打开主页。工具箱被最小化时,点击通知会恢复窗口。
图片来自绑定游戏 PID 的窗口,使用 Windows Graphics Capture,只取该 HWND,不抓桌面,不激活或还原游戏窗口,不改变视角。自动导航跃迁抵达时尝试获取恒星画面,缓存仅绑定当前指挥官、会话和星系。图像筛选排除空帧、过渡纯色画面及单独的底部 HUD;这一筛选是启发式,不能替代实际取图验收。星系内停靠完成时复用同一星系的入境画面,不把机库截图当作恒星背景。图片不可用时发送文字通知,不延迟导航完成。
卡片在真实截图上叠加渐变与标题,不生成替代恒星。仅裁剪后的卡片写入应用数据目录 notifications/arrivals/;通知一天后过期,本功能自己的图片两天后清理。没有网络上传。
验证入口:--offline-preview --data-dir <独立目录> --smoke-notifications <报告路径>。离线卡片使用明确标示的内置演示图片;它不证明游戏实景截图或系统通知已经通过验收。
追加 --test-windows-notification 才会实际发送一条明确标示“测试”的通知,核对 Windows 返回的 ID 与通知中心记录,12 秒后仅移除该测试通知。探针不启动或控制游戏。
Windows App SDK 2.5.1 的便携部署存在 #6774:通知注册缺少 Microsoft.WindowsAppRuntime.Insights.Resource.dll。本项目的 ArrivalNotificationRuntime.targets 从已还原的同版本官方 MSIX 提取该文件并随构建/发布携带,不安装系统运行时。
2026-10-23:17 项通知测试通过;另有 29 项会话与飞船保护回归测试通过。Windows 原生注册、图片通知提交和通知中心记录已在隔离测试中确认(ID 26487),自有离屏窗口的后台取图也已确认。卡片的最终图像、OCR 与视觉验收位于 work/visual/arrival-notifications/final/。Windows 右下角的真实外观、点击激活、实际抵达截图与真实重进完成触发尚未确认;未为本功能重启用户客户端、重启游戏或发送驾驶输入。
API 依据:Microsoft 的 .NET 应用通知说明、原生通知 Hero 图片、指定窗口的 Graphics Capture。