WakeLockSentinel
WakeLockSentinel 介面是 螢幕喚醒鎖 API 的一部分,可用於監視平臺螢幕喚醒鎖的狀態,並在需要時手動釋放鎖。
螢幕喚醒鎖可防止裝置螢幕在應用程式需要持續執行時變暗或鎖定。
透過 navigator.wakeLock.request() 方法請求螢幕喚醒鎖,該方法返回一個 Promise,如果鎖被授予,該 Promise 將以 WakeLockSentinel 物件解析。
已獲取的螢幕喚醒鎖可以透過 release() 方法手動釋放,也可以透過平臺螢幕喚醒鎖自動釋放。後者可能發生,如果文件變得不活躍或失去可見性,如果裝置電量低,或者如果使用者開啟了省電模式。已釋放的 WakeLockSentinel 無法重複使用:如果需要新的鎖,必須使用 navigator.wakeLock.request() 請求一個新的 sentinel。釋放給定喚醒鎖型別的所有 WakeLockSentinel 例項將導致底層平臺喚醒鎖被釋放。
如果平臺鎖被釋放,將向 WakeLockSentinel 觸發一個事件,允許應用程式配置其 UI 並根據需要重新請求鎖。
例項屬性
還繼承了其父介面 EventTarget 的屬性。
例項方法
還繼承了其父介面 EventTarget 的方法。
事件
示例
在此示例中,我們建立了一個非同步函式來請求 WakeLockSentinel。一旦獲取了螢幕喚醒鎖,我們就會監聽 release 事件,該事件可用於提供適當的 UI 反饋。可以透過適當的互動來獲取或釋放 sentinel。
js
// create a reference for the wake lock
let wakeLock = null;
// create an async function to request a wake lock
const requestWakeLock = async () => {
try {
wakeLock = await navigator.wakeLock.request("screen");
// listen for our release event
wakeLock.addEventListener("release", () => {
// if wake lock is released alter the UI accordingly
});
} catch (err) {
// if wake lock request fails - usually system related, such as battery
}
};
wakeLockOnButton.addEventListener("click", () => {
requestWakeLock();
});
wakeLockOffButton.addEventListener("click", () => {
if (wakeLock !== null) {
wakeLock.release().then(() => {
wakeLock = null;
});
}
});
規範
| 規範 |
|---|
| Screen Wake Lock API # the-wakelocksentinel-interface |
瀏覽器相容性
載入中…