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.