Screen Wake Lock API:生命周期与隐私边界
用可见性恢复、主动释放和可靠回退管理屏幕唤醒锁,避免把浏览器能力误解为屏幕常亮或设备身份信号。
BotBrowser Team
Screen Wake Lock API 允许页面在用户可见任务期间请求浏览器不要让屏幕变暗。它是临时且受浏览器控制的请求;可见性、策略、电源条件或主动释放都能结束它。BotBrowser 可以在受控 profile 中验证请求、释放和可见性恢复,但不能让物理屏幕保持亮起,也不保证所有 runner 都支持。
TL;DR
- 检测
navigator.wakeLock,只为明确的用户可见任务请求。 - 保存
WakeLockSentinel,监听release,任务结束时主动释放。 - 从隐藏状态返回时,仅在任务仍需要且能力仍可用时重新请求。
- 唤醒锁不是后台执行、电池访问、身份证据或屏幕常亮保证。
Contents
请求与释放
在阅读食谱或展示 kiosk 步骤等有意流程中调用 navigator.wakeLock.request('screen')。把拒绝视为正常能力结果,并处理 sentinel 的 release。路由离开、任务暂停或用户选择省电时释放;清理必须幂等。
可见性与隐私边界
文档隐藏时浏览器可能释放锁。监听 visibilitychange,回来后读取任务状态,仅在页面可见且用户仍需要时重新请求。失败时保留普通控件和手动继续路径。该 API 不提供电池百分比、设备身份或可靠的电源画像;遥测应限于用途、浏览器结果和必要保留期。
使用 BotBrowser 测试
合成夹具记录能力检测、请求、显式释放、隐藏到可见恢复和回退 UI。测试 API 缺失、拒绝、重复清理和任务已结束后的恢复。BotBrowser 不能控制操作系统电源策略或测量物理显示器状态。
结论
把唤醒锁视为用户任务周围的短期租约:检测能力、主动释放、恢复可见性并保留一等回退。参考 W3C Screen Wake Lock、MDN API、MDN WakeLockSentinel、W3C Privacy Principles 和 BotBrowser advanced features。
延伸阅读
Sources
#Screen Wake Lock#浏览器生命周期#隐私#BotBrowser