Prevent display sleep and enable wake lock in all Android and iOS web browsers.

Check out the live demo in any Android or iOS web browser.


This library is available on Bower as nosleep.

$> bower install nosleep

This package is published to npm as nosleep.js and can installed with:

$> npm install nosleep.js

Alternatively, you can manually add NoSleep.js to your project (or the minified version).

Build from source

This repository uses webpack to build the distribution versions of the library. To build this library run webpack.


Create a new NoSleep object and then enable or disable it when needed as follows:

var noSleep = new NoSleep();

function enableNoSleep() {
  document.removeEventListener('touchstart', enableNoSleep, false);

// Enable wake lock.
// (must be wrapped in a user input event handler e.g. a mouse or touch handler)
document.addEventListener('touchstart', enableNoSleep, false);

// ...

// Disable wake lock at some point in the future.
// (does not need to be wrapped in any user input event handler)


MIT. Copyright (c) Rich Tibbett