JavaScript阻止屏幕进入睡眠状态
AI 概述
请求唤醒锁释放唤醒锁侦听唤醒锁释放重新获取唤醒锁
使用 JavaScript 阻止屏幕进入睡眠状态。
最近在 H5 端有需要保持手机屏幕常亮的需求,辗转之下,发现了一个早在 chrome 85 中就已经支持的 Web API,不过,截止到今天发文时,Safari 仍不支持,尽管如此,在安卓端我们还是能调用这个 API 来节省设...
目录
使用 JavaScript 阻止屏幕进入睡眠状态。
最近在 H5 端有需要保持手机屏幕常亮的需求,辗转之下,发现了一个早在 chrome 85 中就已经支持的 Web API,不过,截止到今天发文时,Safari 仍不支持,尽管如此,在安卓端我们还是能调用这个 API 来节省设备电池电量(相对于 NoSleep.js 来说),ios 端使用 polyfill 的方式,在将来 Safari 支持该 API 后移除即可。
Wake Lock 可防止屏幕关闭、变暗或锁定,仅适用于活动的选项卡/窗口,这可以防止后台选项卡使您的设备保持唤醒状态,也提供了函数以随时通过代码手动释放。
调用 Wake Lock 之前,我们首先需要检查当前浏览器中是否存在该功能。我们可以使用以下简单函数来做到这一点。
const canWakeLock = () => 'wakeLock' in navigator;
请求唤醒锁
下面的示例演示如何请求 WakeLockSentinel 对象。WakeLock.request 方法是基于 Promise 的,因此我们可以创建一个异步函数。
let wakeLock = null;const requestWakeLock = async ()=>{
try {
wakeLock = await navigator.wakeLock.request('screen');
console.log('Wake Lock is active!');
} catch (err) {
console.log(`${err.name}, ${err.message}`);
}
}
requestWakeLock()
释放唤醒锁
下面的示例演示如何释放以前获取的唤醒锁。
wakeLock.release().then(() => wakeLock = null);
侦听唤醒锁释放
如因任何原因(例如离开活动窗口/选项卡)而释放唤醒锁,将出触发 release 监听函数。
wakeLock.addEventListener('release', () => {
console.log('Wake Lock has been released');
});
重新获取唤醒锁
以下代码在文档的可见性发生更改并释放唤醒锁时重新获取唤醒锁。
document.addEventListener('visibilitychange', async () => {
if (wakeLock !== null && document.visibilityState === 'visible') {
requestWakeLock()
}
});
以上关于JavaScript阻止屏幕进入睡眠状态的文章就介绍到这了,更多相关内容请搜索码云笔记以前的文章或继续浏览下面的相关文章,希望大家以后多多支持码云笔记。
声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权/违法违规/事实不符,请将相关资料发送至 admin@mybj123.com 进行投诉反馈,一经查实,立即处理!
重要:如软件存在付费、会员、充值等,均属软件开发者或所属公司行为,与本站无关,网友需自行判断
码云笔记 » JavaScript阻止屏幕进入睡眠状态
如若内容造成侵权/违法违规/事实不符,请将相关资料发送至 admin@mybj123.com 进行投诉反馈,一经查实,立即处理!
重要:如软件存在付费、会员、充值等,均属软件开发者或所属公司行为,与本站无关,网友需自行判断
码云笔记 » JavaScript阻止屏幕进入睡眠状态

微信
支付宝