WakeLockSentinel - 表示防止设备屏幕变暗或锁定时获取到的锁
WakeLockSentinel
接口表示防止设备屏幕变暗或锁定时获取到的锁。获取到的 WakeLockSentinel
可以通过 release()
方法手动释放,也可以通过平台唤醒锁自动释放。 如果文档处于非活动状态或切换到后台,设备电量不足或用户打开了省电模式,则可能会被自动释放。 释放给定类型的所有 WakeLockSentinel
实例,将使底层平台唤醒锁被释放。
属性
此接口提供以下属性。
released
只读
返回一个布尔值,指示是否已释放 WakeLockSentinel
。
type
只读
返回一个 String
,表示当前获取的 WakeLockSentinel
的类型。
可能的返回值是:
'screen'
:屏幕唤醒锁。防止设备变暗或锁定屏幕。
事件处理程序
onrelease
当调用 release()
方法或用户代理释放唤醒锁时触发。
方法
release()
释放 WakeLockSentinel
,返回一个 Promise
,一旦成功释放了则进行解析。
实例
在这个例子中,我们创建了一个异步函数,它请求一个 WakeLockSentinel
。一旦获得,我们将监听 onrelease
事件,该事件可用于提供适当的 UI 反馈。可以通过适当的交互来获取或释放该锁。
// 创建唤醒锁的变量引用
let wakeLock = null;
// 创建一个异步函数来请求唤醒锁
const requestWakeLock = async () => {
try {
wakeLock = await navigator.wakeLock.request('screen');
// 监听释放事件
wakeLock.addEventListener('release', () => {
// 如果释放了唤醒锁,请相应地更改 UI
});
} catch (err) {
// 如果唤醒锁定请求失败 - 通常与系统相关,例如电池电量低
}
}
wakeLockOnButton.addEventListener('click', () => {
requestWakeLock();
})
wakeLockOffButton.addEventListener('click', () => {
if (wakeLock !== null) {
wakeLock.release()
.then(() => {
wakeLock = null;
})
}
})
规范
规范 | 状态 | 备注 |
---|---|---|
Screen Wake Lock API WakeLockSentinel 的定义 |
编者的草案 | Initial definition. |
桌面浏览器兼容性
特性 | Chrome | Edge | Firefox | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|---|
基础支持 | 84 | 84 | 不支持 | 不支持 | 支持 | 不支持 |
onrelease | 84 | 84 | 不支持 | 不支持 | 支持 | 不支持 |
release | 84 | 84 | 不支持 | 不支持 | 支持 | 不支持 |
released | 87 | 87 | 不支持 | 不支持 | 支持 | 不支持 |
type | 84 | 84 | 不支持 | 不支持 | 支持 | 不支持 |
移动浏览器兼容性
特性 | Android | Chrome for Android | Edge mobile | Firefox for Android | IE mobile | Opera Android | iOS Safari |
---|---|---|---|---|---|---|---|
基础支持 | 84 | 84 | 未知 | 不支持 | 未知 | 支持 | 不支持 |
onrelease | 84 | 84 | 未知 | 不支持 | 未知 | 支持 | 不支持 |
release | 84 | 84 | 未知 | 不支持 | 未知 | 支持 | 不支持 |
released | 87 | 87 | 未知 | 不支持 | 未知 | 支持 | 不支持 |
type | 84 | 84 | 未知 | 不支持 | 未知 | 支持 | 不支持 |