WakeLockSentinel
Draft: This page is not complete.
Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.
The WakeLockSentinel
interface of the Screen Wake Lock API
provides a handle to the underlying platform wake lock and can be manually released and reacquired. An Object
representing the wake lock is returned via the navigator.wakelock.request()
method.
An acquired WakeLockSentinel
can be released manually via the release()
method, or automatically via the platform wake lock. This can happen if the document becomes inactive or looses visibility, if the device is low on power or the user turns on a power save mode. Releasing all WakeLockSentinel
instances of a given wake lock type will cause the underlying platform wake lock to be released.
Properties
This interface provides the following properties.
-
released
Read only -
Returns a boolean indicating whether the
WakeLockSentinel
has been released. -
type
Read only -
Returns a
String
representation of the currently acquiredWakeLockSentinel
type. Return values are:-
'screen'
: A screen wake lock. Prevents devices from dimming or locking the screen.
-
Event handlers
Methods
release()
-
Releases the
WakeLockSentinel
, returning aPromise
that is resolved once the sentinel has been successfully released.
Examples
In this example we create an asynchronous function which requests a WakeLockSentinel
. Once acquired we listen for the onrelease
event which can be used to give appropriate UI feedback. The sentinel can be acquired or released via appropriate interactions.
// 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; }) } })
Specifications
Specification |
---|
Screen Wake Lock API # the-wakelocksentinel-interface |
Browser compatibility
Desktop | Mobile | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | WebView Android | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | |
WakeLockSentinel |
84 |
84 |
No |
No |
Yes |
No |
84 |
84 |
No |
Yes |
No |
14.0 |
onrelease |
84 |
84 |
No |
No |
Yes |
No |
84 |
84 |
No |
Yes |
No |
14.0 |
release |
84 |
84 |
No |
No |
Yes |
No |
84 |
84 |
No |
Yes |
No |
14.0 |
released |
87 |
87 |
No |
No |
Yes |
No |
87 |
87 |
No |
Yes |
No |
14.0 |
type |
84 |
84 |
No |
No |
Yes |
No |
84 |
84 |
No |
Yes |
No |
14.0 |
© 2005–2021 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/WakeLockSentinel