此页面由社区从英文翻译而来。了解更多并加入 MDN Web Docs 社区。

View in English Always switch to English

WakeLock

Baseline 2025
Newly available

Since March 2025, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.

安全上下文: 此特性仅在一些支持的浏览器安全上下文(HTTPS)中可用。

屏幕唤醒锁 APIWakeLock 接口可用于请求锁,该锁阻止设备屏幕在应用程序需要保持运行时变暗或锁定。

此接口以及系统唤醒锁通过 Navigator.wakeLock 属性暴露。

实例方法

request()

返回一个 Promise 对象,该对象在屏幕唤醒锁被授予时会兑现为一个 WakeLockSentinel 对象。

示例

以下代码使用了 await 来请求 WakeLockSentinel 对象,如果请求成功则继续执行。

WakeLock.request() 方法被包裹在 try...catch 语句中,以捕捉导致 promise 被拒绝的情况,例如设备电量低。

js
try {
  const wakeLock = await navigator.wakeLock.request("screen");
} catch (err) {
  // 唤醒锁请求失败——通常是系统原因,例如设备电量不足
  console.log(`${err.name}, ${err.message}`);
}

请注意,设备可能会在授予屏幕唤醒锁后撤销它。返回的 WakeLockSentinel 可用于检查锁的状态,以及手动取消持有的屏幕唤醒锁。

规范

Specification
Screen Wake Lock API
# the-wakelock-interface

浏览器兼容性

参见