WakeLock: request() 方法

基准线 2025
新推出

自 ⁨2025 年 3 月⁩ 起,此功能可在最新的设备和浏览器版本上使用。此功能可能在旧设备或浏览器上无法正常工作。

安全上下文: 此功能仅在安全上下文(HTTPS)中可用,且支持此功能的浏览器数量有限。

request() 方法是 WakeLock 接口的一部分,它返回一个 Promise,如果系统屏幕唤醒锁被授予,该 Promise 会解析为 WakeLockSentinel 对象。

屏幕唤醒锁可防止设备屏幕在应用程序需要持续运行时变暗或锁定。

语法

js
request(type)

参数

type 可选

一个字符串,用于指定屏幕唤醒锁的类型,以下列出的枚举类型之一

screen

防止屏幕关闭。只有可见的文档才能获取屏幕唤醒锁。

如果未明确指定 type 参数,request() 方法将默认使用 screen 类型。

返回值

一个 Promise,它会解析为 WakeLockSentinel 对象。

异常

NotAllowedError DOMException

在唤醒锁不可用时抛出,这可能发生因为:

  • 此功能的使用被 Permissions Policy 阻止。
  • 文档不处于完全活动状态。
  • 文档的可见性状态为 hidden
  • 用户代理 (User Agent) 无法获取平台的唤醒锁。例如,这可能发生在设备电量不足时。

示例

以下异步函数请求一个 WakeLockSentinel 对象。request() 方法包装在 try...catch 语句中,以处理浏览器因任何原因拒绝请求的情况。

js
const requestWakeLock = async () => {
  try {
    const wakeLock = await navigator.wakeLock.request("screen");
  } catch (err) {
    // The wake lock request fails - usually system-related, such as low battery.

    console.log(`${err.name}, ${err.message}`);
  }
};

requestWakeLock();

屏幕唤醒锁在被授予后可能会被设备撤销。返回的 WakeLockSentinel 可用于检查锁的状态,和/或手动取消已持有的屏幕唤醒锁。

规范

规范
Screen Wake Lock API
# the-request-method

浏览器兼容性

另见