唤醒锁 (Screen Wake Lock API) 让 App 不会因为省电设定而关闭萤幕,透过这样的设计 App 有了更多的弹性。举例来说:
使用上也没有特别复杂,步骤如下
// 1. 首先看是否支援,有存在这个 API 就代表支援
if ('wakeLock' in navigator) {
let wakeLock = null;
const requestWakeLock = async () => {
try {
// 2. 透过 wakeLock.request() 去启动唤醒锁
wakeLock = await navigator.wakeLock.request();
// 3. 透过 released 这个状态去侦测是否启动
wakeLock.addEventListener('release', () => {
console.log('Screen Wake Lock released:', wakeLock.released);
});
console.log('Screen Wake Lock released:', wakeLock.released);
} catch (err) {
console.error(`${err.name}, ${err.message}`);
}
};
// 启动唤醒锁
await requestWakeLock();
// 五秒後释放
window.setTimeout(() => {
wakeLock.release();
wakeLock = null;
}, 5000);
}
Demo 的站台:
https://wake-lock-demo.glitch.me/
Betty Crocker 是美国烹饪指导和食谱开发的一个网站,MAU 超过 1200 万,对於食谱 App 的用户来说会希望在烹饪的过程中萤幕可以维持长亮,在导入唤醒锁後甚至不再维护双平台的 App。
在导入唤醒锁的过程中,技术团队也尝试实作一小时内没有任何活动後禁用唤醒锁的功能。但最终选择是在网站上的所有食谱页面上加入了切换开关。
BettyCrocker.com 在导入唤醒锁後得到以下结果:
对 Betty Crocker 来说加入了这个功能最大的帮助就是直接找出了最关键的消费者。
>>: Day29. Rails MVC 的 Model - 与资料库联络的桥梁
此篇会介绍 Bootstrap 客制化所需的环境设置。 想先谈谈关於 Bootstrap 5 客制...
在过去的29天内,除了直接绑在JSX元素上外,我们从来都没有提过要如何在React处理CSS cod...
VM环境安装及打包上环境 安装环境及套件 输入sudo apt update 更新apt 输入sud...
本文将於赛後同步刊登於笔者部落格 有兴趣学习更多 Kubernetes/DevOps/Linux 相...
随着互联网的日新月异,人们对於服务器租用要求也是越来越高,其中高防CDN就是受到大家关注的一种服务类...