使用 Array.prototype.with 更新不可变数组

开发 前端
JavaScript 中的一些新功能非常值得期待,唤醒锁定 api 就是其中之一。它允许我们与主机系统进行交互,可以帮助开发人员使用 JavaScript 指示操作系统保持屏幕唤醒状态!

JavaScript 中的一些新功能非常值得期待,唤醒锁定 api 就是其中之一。它允许我们与主机系统进行交互,可以帮助开发人员使用 JavaScript 指示操作系统保持屏幕唤醒状态!

这对于希望用户的设备不会因非活动超时而被锁定的情况尤其有用。浏览器可以指示操作系统用户正在进行某项活动,例如录制或观看视频。

防止屏幕休眠或变暗

然后就可以使用唤醒锁定 API 来防止屏幕休眠或变暗。用于请求权限:

let screenLock;


try {
  screenLock = await navigator.wakeLock.request('screen');
} catch (err) {
  console.log('Error with wake lock: ', err);
}

如果请求成功,主机将不会休眠,直到唤醒锁以编程方式被释放。这就是使用 JavaScript 保持屏幕唤醒所需的全部功能。

我们将代码封装在 try-catch 中,因为如果主机设备处于省电模式、电池电量不足或当前标签不可见,屏幕唤醒锁请求可能会被拒绝。

释放唤醒锁

await screenLock.release()

值得注意的是,如果文档处于非活动状态(用户更换标签页/窗口等),锁定会自动解除。为了处理这个问题,我们可以添加一个可见性变化事件:

document.addEventListener('visibilitychange', async () => {
  try {
    screenLock = await navigator.wakeLock.request('screen');
  } catch (err) {
    console.log('Error with wake lock: ', err);
  }
});

请注意

该 API 仅在应用程序通过 HTTPS 提供时可用。

虽然该 API 已经存在了一段时间,但并非所有浏览器都支持它。您可以查看 MDN 兼容性,了解哪些浏览器支持。在撰写本文时,iOS 上的 firefox 和 Safari 尚不支持。

在设备上使用此功能可确保设备不会进入休眠状态。

责任编辑:华轩 来源: web前端开发
相关推荐

2024-03-08 13:06:31

Array数组JavaScrip

2022-07-13 16:38:32

Python可变数据类型不可变数据类型

2018-11-12 09:50:56

Python函数式编程数据结构

2018-09-21 11:19:30

Lambda架构函数数据系统

2023-06-07 19:17:14

UbuntuKDELinux

2024-02-26 10:47:09

Python数据类型开发

2024-04-08 07:58:11

Python数据类型字符串

2010-01-14 14:30:09

VB.NET匿名类型

2011-03-30 16:15:53

Array数组

2022-06-28 09:10:32

K8S容器镜像滚动升级

2009-11-16 15:07:23

PHP数组函数库

2023-02-18 13:47:04

CoreOS容器操作系统云原生

2022-08-05 12:05:07

JavaGuava集合

2021-06-14 09:34:23

对象存储存储

2016-12-21 09:35:55

JavaScript原生数组函数

2023-10-20 08:18:17

Python数据类型

2021-04-07 17:06:55

String Final存储

2024-09-24 08:36:18

2010-10-09 09:26:59

Array数组JS

2015-10-12 08:56:27

Java不可变
点赞
收藏

51CTO技术栈公众号