问题描述 (Bug Description)
在桌面端应用触发自动锁定(过期锁定)后,关闭/隐藏窗口。再次通过托盘图标、快捷键或重新双击运行程序唤起窗口时,主窗口会变成完全白屏(无法显示解锁页面,也无法进行后续操作)。
复现步骤 (Reproduction Steps)
- 登录桌面端并解锁保险库。
- 在设置中配置自动锁定时间(例如 1 分钟)。
- 等待超时锁定触发,应用锁定并隐藏/最小化窗口。
- 双击托盘图标,或通过快捷键、应用图标重新唤起窗口。
- 此时窗口能够展示,但页面内容是一片空白(白屏)。
预期行为 (Expected Behavior)
当窗口被重新唤起时,应当正确展示锁屏解锁界面(LockScreen),允许用户输入主密码或使用生物识别解锁。
运行环境 (Environment)
- 操作系统: Windows 11
- 应用版本:
bear-password-desktop v26.6.20
初步排查 (Possible Cause)
初步观察代码,发现可能是:
LockScreen.vue 中的 watch 监听器使用了 immediate: true, flush: 'sync' 立即执行,如果此时路由或相关 API 尚未加载完毕,可能会抛出未捕获的错误。
- 窗口激活、焦点事件
handleWindowVisibilityChange 或 ensureWindowFocused 的异步时序问题,在某些状态下导致 Vue 渲染树崩溃引起白屏。
问题描述 (Bug Description)
在桌面端应用触发自动锁定(过期锁定)后,关闭/隐藏窗口。再次通过托盘图标、快捷键或重新双击运行程序唤起窗口时,主窗口会变成完全白屏(无法显示解锁页面,也无法进行后续操作)。
复现步骤 (Reproduction Steps)
预期行为 (Expected Behavior)
当窗口被重新唤起时,应当正确展示锁屏解锁界面(
LockScreen),允许用户输入主密码或使用生物识别解锁。运行环境 (Environment)
bear-password-desktopv26.6.20初步排查 (Possible Cause)
初步观察代码,发现可能是:
LockScreen.vue中的watch监听器使用了immediate: true, flush: 'sync'立即执行,如果此时路由或相关 API 尚未加载完毕,可能会抛出未捕获的错误。handleWindowVisibilityChange或ensureWindowFocused的异步时序问题,在某些状态下导致 Vue 渲染树崩溃引起白屏。