WakeLockSentinel
WakeLockSentinel 接口是 屏幕唤醒锁 API 的一部分,可用于监视平台屏幕唤醒锁的状态,并在需要时手动释放锁。
屏幕唤醒锁可防止设备屏幕在应用程序需要持续运行时变暗或锁定。
通过 navigator.wakeLock.request() 方法请求屏幕唤醒锁,该方法返回一个 Promise,如果锁被授予,该 Promise 将以 WakeLockSentinel 对象解析。
已获取的屏幕唤醒锁可以通过 release() 方法手动释放,也可以通过平台屏幕唤醒锁自动释放。后者可能发生,如果文档变得不活跃或失去可见性,如果设备电量低,或者如果用户开启了省电模式。已释放的 WakeLockSentinel 无法重复使用:如果需要新的锁,必须使用 navigator.wakeLock.request() 请求一个新的 sentinel。释放给定唤醒锁类型的所有 WakeLockSentinel 实例将导致底层平台唤醒锁被释放。
如果平台锁被释放,将向 WakeLockSentinel 触发一个事件,允许应用程序配置其 UI 并根据需要重新请求锁。
实例属性
还继承了其父接口 EventTarget 的属性。
实例方法
还继承了其父接口 EventTarget 的方法。
事件
示例
在此示例中,我们创建了一个异步函数来请求 WakeLockSentinel。一旦获取了屏幕唤醒锁,我们就会监听 release 事件,该事件可用于提供适当的 UI 反馈。可以通过适当的交互来获取或释放 sentinel。
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;
});
}
});
规范
| 规范 |
|---|
| Screen Wake Lock API # the-wakelocksentinel-interface |
浏览器兼容性
加载中…