Screen Wake Lock API
Screen Wake Lock API 允许控制设备的屏幕变暗、休眠或锁定的策略
通过 navigator.wakeLock 暴露的 WakeLock 接口实例使用
启用屏幕管理策略
通过 WakeLock 接口的 request() 方法来请求启用屏幕管理策略
方法传入一个可选的 type 字符串参数,唯一允许值为 'screen'
方法返回一个 Promise 的 WakeLockSentinel 实例
方法可能抛出一个 NotAllowedError 异常,例如被 Permissions Policy 拒绝、当前网页未处于活跃状态、当前网页处于隐藏状态或用户代理无法获取到系统的屏幕管理策略
1 | const sentinel = await navigator.wakeLock.request() |
释放屏幕管理策略
通过 WakeLockSentinel 接口的 release() 方法来手动关闭屏幕管理策略
方法返回一个 Promise
1 | sentinel.release() |
同时,操作系统可能会在网页失去焦点或隐藏时自动关闭屏幕管理策略
屏幕管理策略信息
WakeLockSentinel 接口的 released 属性返回一个 boolean,表示当前 WakeLockSentinel 是否已被释放
WakeLockSentinel 接口的 type 属性返回一个 string,表示当前 WakeLockSentinel 的类型
WakeLockSentinel 接口的 release 事件,在 WakeLockSentinel 被释放时触发,返回一个 Event 事件
权限策略
该 API 调用受到 screen-wake-lock 权限策略的控制,可以通过 Permissions-Policy 响应头指定,或通过 <iframe> 标签的 allow 属性指定
默认为 self,即允许在当前上下文或内嵌的其他同源上下文中使用
类型
1 | interface WakeLock { |
链接
Screen Wake Lock API
https://skyclouds2001.github.io/2023/10/23/Screen-Wake-Lock-API/

