喚醒鎖 (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 來說加入了這個功能最大的幫助就是直接找出了最關鍵的消費者。