Os desenvolvedores da Web ainda têm um trabalho difícil quando se trata de dispositivos móveis; a Web nunca fornecerá tantas APIs ou tanto controle quanto as plataformas móveis nativas, mas nossos usuários esperam a mesma experiência excelente. Criar jogos em HTML5 e aplicativos de mídia pesada para a Web pode ser realmente difícil, pois é preciso prestar atenção ao desempenho e às outras pequenas coisas que as plataformas nativas oferecem.


Um desses pequenos recursos inclui evitar que o dispositivo durma quando o usuário não estiver ativo. Imagine seu usuário jogando um jogo que não requer muita interação, experimentando uma demonstração de RV, ou mesmo apenas uma publicação de blog ou apresentação de slides, e a tela de repente fica preta – isso é um aborrecimento que seus usuários não podem (e não devem) tolerar. É nesse ponto que a NoSleep.js entra: um pequeno Calço da API do Wake Lock para impedir que o navegador e o dispositivo entrem em modo de espera!


Usar o NoSleep.js é muito fácil. Para iniciar o efeito de não dormir, basta adicionar:



var noSleep = new NoSleep();

function enableNoSleep() {
  noSleep.enable();
  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);


Quando quiser ceder o controle do sleep, basta chamar o comando disable :



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


Então, como o NoSleep.js evita o efeito sleep? O NoSleep.js simula um pequeno vídeo mp4 e o reproduz continuamente, o que funciona porque os navegadores sabem o suficiente para não sinalizar o sono quando um vídeo está sendo reproduzido. Que maneira inteligente de evitar que o dispositivo durma!


Será que algum dia teremos uma API JavaScript que nos permita controlar se o dispositivo dorme ou não? É possível, pois nenhum fornecedor de navegadores se comprometeu com a API Wake Lock ainda. É por isso que nós, desenvolvedores da Web, temos que ser inteligentes e resolver o problema com nossas próprias mãos!

  • API de vibração

    Muitas das novas APIs fornecidas pelos fornecedores de navegadores são mais voltadas para o usuário móvel do que para o usuário de desktop. Uma dessas APIs simples é a API de vibração. A API de vibração permite que os desenvolvedores direcionem o dispositivo, usando JavaScript, para vibrar em…

  • Crie classes com espaço de nome com o MooTools

    O MooTools sempre foi um pouco criticado por não usar e padronizar inerentemente classes JavaScript baseadas em namespaced, como faz o Dojo Toolkit. Muitos desenvolvedores criam suas classes como globais, o que geralmente é mal visto. Na maioria das vezes, não concordo com essa posição, mas cada um tem a sua. De qualquer forma…