无需登录 数据私有 本地保存

屏幕唤醒锁测试 - 保持常亮及事件监听

10
0
0
0

未锁定

屏幕可以正常变暗或关闭

页面可见性: 可见
切换标签页或最小化窗口时,唤醒锁会自动释放
使用场景

视频播放、导航指引、演示文稿、烹饪食谱、阅读长文、代码演示等需要屏幕保持常亮的场景。

安全说明

需要 HTTPS 环境,必须由用户手势触发。页面隐藏时系统会自动释放锁以节省电量。

事件日志

暂无日志,点击按钮开始测试

常见问题与知识点

Screen Wake Lock API 是一个浏览器原生 API,允许网页阻止设备屏幕自动变暗或锁定。它通过 navigator.wakeLock.request('screen') 方法请求一个唤醒锁,返回一个 WakeLockSentinel 对象。当不再需要时,可以调用 sentinel.release() 手动释放。该 API 特别适用于视频播放器、导航应用、在线演示等场景。

浏览器支持版本状态
Chrome84+完全支持
Edge84+完全支持
Opera70+完全支持
Chrome Android84+完全支持
Samsung Internet14+完全支持
Firefox-不支持
Safari / iOS Safari-不支持

唤醒锁会在以下情况自动释放:
1. 页面不可见:切换标签页、最小化窗口或锁屏时,浏览器会自动释放唤醒锁以节省电池。
2. 电池电量过低:设备电量极低时,操作系统可能会强制释放。
3. 系统策略:部分设备的电源管理策略可能会覆盖唤醒锁。
您可以通过监听 visibilitychange 事件,在页面恢复可见时重新请求唤醒锁(本工具提供"自动重新锁定"选项)。

是的,需要 HTTPS。 Screen Wake Lock API 属于安全敏感的 API,必须在安全上下文(HTTPS 或 localhost)中才能使用。在 HTTP 环境下,navigator.wakeLock 将为 undefined。这是为了保护用户免受恶意网站滥用(如阻止屏幕关闭来耗尽电池)。

使用简单的特性检测:
if ('wakeLock' in navigator) { /* 支持 */ }
或者更严格的检查:
if (navigator.wakeLock && typeof navigator.wakeLock.request === 'function') { /* 可用 */ }
本工具在加载时会自动检测并显示兼容性状态。

会。保持屏幕常亮会显著增加电量消耗,屏幕是移动设备最大的耗电组件之一。因此,浏览器会在页面不可见时自动释放唤醒锁,操作系统也可能在电量极低时强制释放。建议仅在必要时使用,并在不需要时及时释放。本工具仅供测试和演示用途。

不可以。 Wake Lock API 要求必须由用户手势(如点击按钮)触发。如果在页面加载时或非用户交互的上下文中调用 request(),浏览器会拒绝请求并抛出错误。不过,在 visibilitychange 事件中重新请求唤醒锁是被允许的,因为这被视为对初始用户手势的延续。

  • 始终在 try-catch 中调用 request(),处理可能的异常。
  • 监听 sentinel 的 release 事件,及时更新 UI 状态。
  • 结合 Page Visibility API,在页面恢复可见时按需重新获取锁。
  • 提供明确的 UI 反馈,让用户知道屏幕是否处于常亮状态。
  • 在不再需要时主动释放锁,避免不必要的电量消耗。
  • 测试时注意:部分移动浏览器在低电量模式下可能限制唤醒锁功能。