WakeLock: request() method

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

The request() method of the WakeLock interface returns a Promise that fullfills with a WakeLockSentinel object if the system screen wake lock is granted.

The screen wake lock prevents device screens from dimming or locking when an application needs to keep running.

Syntax

js
request(type)

Parameters

type Optional

A string specifying the screen wake lock type, from among the following enumerated types:

screen

Prevents the screen from turning off. Only visible documents can acquire the screen wake lock.

If no type parameter is explicitly specified, the request() method defaults to using the screen type.

Return value

A Promise that resolves with a WakeLockSentinel object.

Exceptions

NotAllowedError DOMException

Thrown when wake lock is not available, which can happen because:

  • Use of this feature is blocked by a Permissions Policy.
  • The document is not fully active.
  • The document's visibility state is hidden.
  • The User Agent could not acquire platform's wake lock. For example, this might happen if the device is low on battery.

Examples

The following asynchronous function requests a WakeLockSentinel object. The request() method is wrapped in a try...catch statement to handle cases where the browser refuses the request for any reason.

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();

The screen wake lock may be revoked by the device after it has been granted. The returned WakeLockSentinel can be used to check the status of the lock, and/or to manually cancel a held screen wake lock.

Specifications

Specification
Screen Wake Lock API
# the-request-method

Browser compatibility

BCD tables only load in the browser

See also