WakeLock: request() 方法

有限可用性

此功能不是基线,因为它在一些最广泛使用的浏览器中不起作用。

安全上下文:此功能仅在 安全上下文(HTTPS)中可用,在一些或所有 支持的浏览器 中可用。

request() 方法是 WakeLock 接口的方法,它返回一个 Promise,如果系统屏幕唤醒锁定被授予,则该 Promise 会与一个 WakeLockSentinel 对象完成。

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

语法

js
request(type)

参数

type 可选

一个字符串,指定屏幕唤醒锁定类型,从以下枚举类型中选择

screen

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

如果没有显式指定type参数,则request()方法默认使用screen类型。

返回值

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

异常

NotAllowedError DOMException

当唤醒锁定不可用时抛出,这可能发生在以下情况下

  • 使用此功能被 权限策略 阻止。
  • 文档未完全激活。
  • 文档的可见性状态为hidden
  • 用户代理 无法获取平台的唤醒锁定。例如,如果设备电量不足,可能会发生这种情况。

示例

以下异步函数请求一个 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 可用于检查锁定的状态,或手动取消持有的屏幕唤醒锁定。

规范

规范
屏幕唤醒锁定 API
# the-request-method

浏览器兼容性

BCD 表仅在浏览器中加载

另请参见