WakeLock: request() 方法

基準線 2025
新推出

自 ⁨2025 年 3 月⁩ 起,此功能可在最新的裝置和瀏覽器版本上使用。此功能可能在舊裝置或瀏覽器上無法正常工作。

安全上下文: 此功能僅在安全上下文(HTTPS)中可用,且支援此功能的瀏覽器數量有限。

request() 方法是 WakeLock 介面的一部分,它返回一個 Promise,如果系統螢幕喚醒鎖被授予,該 Promise 會解析為 WakeLockSentinel 物件。

螢幕喚醒鎖可防止裝置螢幕在應用程式需要持續執行時變暗或鎖定。

語法

js
request(type)

引數

type 可選

一個字串,用於指定螢幕喚醒鎖的型別,以下列出的列舉型別之一

screen

防止螢幕關閉。只有可見的文件才能獲取螢幕喚醒鎖。

如果未明確指定 type 引數,request() 方法將預設使用 screen 型別。

返回值

一個 Promise,它會解析為 WakeLockSentinel 物件。

異常

NotAllowedError DOMException

在喚醒鎖不可用時丟擲,這可能發生因為:

  • 此功能的使用被 Permissions Policy 阻止。
  • 文件不處於完全活動狀態。
  • 文件的可見性狀態為 hidden
  • 使用者代理 (User Agent) 無法獲取平臺的喚醒鎖。例如,這可能發生在裝置電量不足時。

示例

以下非同步函式請求一個 WakeLockSentinel 物件。request() 方法包裝在 try...catch 語句中,以處理瀏覽器因任何原因拒絕請求的情況。

js
const requestWakeLock = async () => {
  try {
    const wakeLock = await navigator.wakeLock.request("screen");
  } catch (err) {
    // The wake lock request fails - usually system-related, such as low battery.

    console.log(`${err.name}, ${err.message}`);
  }
};

requestWakeLock();

螢幕喚醒鎖在被授予後可能會被裝置撤銷。返回的 WakeLockSentinel 可用於檢查鎖的狀態,和/或手動取消已持有的螢幕喚醒鎖。

規範

規範
Screen Wake Lock API
# the-request-method

瀏覽器相容性

另見