navigator.wakeLock.request("scre

2024-03-27  本文已影响0人  keknei

网页保持屏幕唤起常亮状态,阻止息屏,一行代码搞定

window.navigator.wakeLock.request("screen");

因为保持屏幕唤醒是一个占用资源开销的行为,所以浏览器中,当页面最小化或者切换到非当前页的标签页的时候,屏幕的wake锁定就会释放,用户再切换回当前页面的时候,就没有锁定屏幕了,因此如果切换回来后还想保持屏幕唤起状态,就需要其他代码处理唤醒

document.addEventListener("visibilitychange", () => {
  if (document.visibilityState === "visible") {
    window.navigator.wakeLock.request("screen");
  }
});

知道怎么开启唤醒操作,如果用户想关闭唤醒锁定,所以也得知道怎么主动关闭唤醒锁定
WakeLockSentinel 对象可以主动关闭,该对象是navigator.wakeLock.request(‘screen’)这个Promise执行后的返回值

  1. 使用then()获取
let wakeLock = null;
window.navigator.wakeLock.request("screen").then((result)=>{
  wakeLock = result;
});
  1. 使用async/await语法获取
let wakeLock = null;
(async () => {
  wakeLock = await window.navigator.wakeLock.request("screen");
})();

获取对象后,执行对象上release()方法,可以释放息屏锁定

wakeLock.release().then(() => {
  wakeLock = null;
});

可以监听wakeLock对象上的release事件,来确定是什么时候释放唤醒锁定的

wakeLock.addEventListener("release", () => {
  console.log("唤醒锁定已释放");
});
上一篇 下一篇

猜你喜欢

热点阅读