WakeLock: request() 方法
request() 方法是 WakeLock 接口的一部分,它返回一个 Promise,如果系统屏幕唤醒锁被授予,该 Promise 会解析为 WakeLockSentinel 对象。
屏幕唤醒锁可防止设备屏幕在应用程序需要持续运行时变暗或锁定。
语法
js
request(type)
参数
如果未明确指定 type 参数,request() 方法将默认使用 screen 类型。
返回值
一个 Promise,它会解析为 WakeLockSentinel 对象。
异常
NotAllowedErrorDOMException-
在唤醒锁不可用时抛出,这可能发生因为:
- 此功能的使用被 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 |
浏览器兼容性
加载中…