Acessando hardware do dispositivo com JavaScript

Postado em: 13/04/2018

Atualizado em: 13/04/2018

Esse é o primeiro artigo de uma série onde apresentarei algumas APIs capazes de acessar o hardware do dispositivo do usuário.

No artigo de hoje, iniciaremos falando sobre a Battery Status API. Ela pode ser útil quando se deseja ajustar a utilização de recursos da aplicação, diminuindo o uso de bateria, quando esta estiver com um nível muito baixo.

Battery API

A Battery API fornece algumas informações, a respeito da bateria do dispositivo, tais como, nível atual, estado (carregando ou não), tempo até descarregar e tempo até carga completa. Cada uma dessas informações está contida em uma propriedade do Objeto BatteryManager, como veremos a seguir.

Através do método getBattery do objeto navigator conseguimos uma promise que contém um objeto BatteryManager, é ele o coração da API.

Propriedades

O objeto BatteryManager possui quatro propriedades de readonly, vejamos a seguir:

level

retorna um número de 0 à 1 (0 se estiver completamente descarregado, 1 se estiver com cargar em 100%) indicando o nível da bateria.

charging

Retorna um boolean, true se o dispositivo estiver carregando, false se não estiver.

chargingTime

Retorna, em segundos, a estimativa do tempo restante até atingir 100% de carga

dischargingTime

Retorna, em segundos, a estimativa do tempo restante até o dispositivo descarregar completamente

Eventos

A BatteryManager possui quatro eventos:

chargingchange

É disparado quando o estado de carregamento do dispositivo é alterado.

chargingtimechange

É disparado quando a estimativa do tempo de carregamento completo é atualizado.

dischargingtimechange

É disparado quando a estimativa do tempo de descarregamento total é atualizado.

levelchange

É disparado quando o nível de bateria é atualizado.

Exemplo

Vejamos um exemplo abaixo:

See the Pen Battery API by Maike Negreiros (@maikke) on CodePen.