WakeLockSentinel
WakeLockSentinel
接口是屏幕唤醒锁 API的一部分,可用于监视平台屏幕唤醒锁的状态,并在需要时手动释放锁。
屏幕唤醒锁可防止设备在应用程序需要继续运行时变暗或锁定屏幕。
使用navigator.wakeLock.request()
方法请求屏幕唤醒锁,该方法返回一个Promise
,如果锁被授予,则该方法将用WakeLockSentinel
对象完成。
获取的屏幕唤醒锁可以通过release()
方法手动释放,或通过平台屏幕唤醒锁自动释放。如果文档变为非活动状态或失去可见性,如果设备电量不足,或者如果用户开启节能模式,则可能会发生后者。释放的WakeLockSentinel
无法重复使用:如果需要新的锁,则必须使用navigator.wakeLock.request()
请求新的监视器。释放给定唤醒锁类型的所有WakeLockSentinel
实例将导致底层平台唤醒锁被释放。
如果平台锁被释放,则会在WakeLockSentinel
上触发一个事件,允许应用程序配置其 UI,并在需要时重新请求锁。
实例属性
还从其父接口EventTarget
继承属性。
实例方法
还从其父接口EventTarget
继承方法。
事件
示例
在本例中,我们创建了一个异步函数,该函数请求WakeLockSentinel
。一旦获取了屏幕唤醒锁,我们就监听release
事件,该事件可用于提供适当的 UI 反馈。监视器可以通过适当的交互来获取或释放。
js
// create a reference for the wake lock
let wakeLock = null;
// create an async function to request a wake lock
const requestWakeLock = async () => {
try {
wakeLock = await navigator.wakeLock.request("screen");
// listen for our release event
wakeLock.addEventListener("release", () => {
// if wake lock is released alter the UI accordingly
});
} catch (err) {
// if wake lock request fails - usually system related, such as battery
}
};
wakeLockOnButton.addEventListener("click", () => {
requestWakeLock();
});
wakeLockOffButton.addEventListener("click", () => {
if (wakeLock !== null) {
wakeLock.release().then(() => {
wakeLock = null;
});
}
});
规范
规范 |
---|
屏幕唤醒锁 API # the-wakelocksentinel-interface |
浏览器兼容性
BCD 表格仅在启用 JavaScript 的浏览器中加载。