Atualizado: 07/12/2024

Battery Status API - JavaScript

A Battery Status API permite acessar informações sobre o estado da bateria de um dispositivo. Esses dados podem ser utilizados para adaptar o comportamento de uma página web de acordo com o nível de carga ou o status de carregamento da bateria. A API define o objeto BatteryManager, que fornece propriedades e eventos para monitorar o estado da bateria. Você pode obter um objeto BatteryManager chamando o método getBattery() na interface navigator:

navigator.getBattery()
    .then((batteryManager) => console.log(batteryManager)); // BatteryManager { ... }

O método navigator.getBattery() retorna uma Promise. A função passada para o método then() recebe como argumento um objeto do tipo BatteryManager.

Propriedades do BatteryManager

O objeto BatteryManager fornece as seguintes propriedades para obter informações detalhadas sobre a bateria:

  • charging: Um valor booleano que indica se a bateria está sendo carregada no momento.

  • chargingTime: O tempo restante em segundos até que a bateria esteja completamente carregada. Será 0 se a bateria já estiver totalmente carregada e Infinity se não estiver sendo carregada.

  • dischargingTime: O tempo restante em segundos até que a bateria esteja completamente descarregada. Será Infinity se a bateria estiver sendo carregada.

  • level: O nível de carga da bateria, representado como um número entre 0.0 e 1.0.

No exemplo abaixo, utilizamos o BatteryManager para exibir informações sobre o status da bateria no console:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title>Status da Bateria</title>
</head>
<body>
<script>
async function displayBatteryStatus() {
    const batteryManager = await navigator.getBattery();
    console.log("Carregando:", batteryManager.charging);
    console.log("Tempo restante para carga completa (segundos):", batteryManager.chargingTime);
    console.log("Tempo restante para descarga completa (segundos):", batteryManager.dischargingTime);
    console.log("Nível de carga:", batteryManager.level);
}
displayBatteryStatus();
</script>
</body>
</html>

Eventos do BatteryManager

A API também fornece eventos que permitem monitorar alterações no status da bateria em tempo real. Estes são os eventos disponíveis:

  • chargingchange: Disparado quando o status de carregamento da bateria (propriedade charging) muda.

  • chargingtimechange: Disparado quando o tempo restante para a carga completa (propriedade chargingTime) muda.

  • dischargingtimechange: Disparado quando o tempo restante para a descarga completa (propriedade dischargingTime) muda.

  • levelchange: Disparado quando o nível de carga da bateria (propriedade level) muda.

O código a seguir demonstra como monitorar as mudanças no status da bateria e responder aos eventos disparados:

function displayBatteryStatus(battery) {
    console.log("Carregando:", battery.charging);
    console.log("Tempo restante para carga completa (segundos):", battery.chargingTime);
    console.log("Tempo restante para descarga completa (segundos):", battery.dischargingTime);
    console.log("Nível de carga:", battery.level);
}

navigator.getBattery().then((battery) => {
    // Exibe o status inicial da bateria
    displayBatteryStatus(battery);

    // Adiciona ouvintes para monitorar mudanças no status
    battery.addEventListener("chargingchange", () => {
        console.log("Carregando:", battery.charging);
    });

    battery.addEventListener("chargingtimechange", () => {
        console.log("Tempo restante para carga completa (segundos):", battery.chargingTime);
    });

    battery.addEventListener("dischargingtimechange", () => {
        console.log("Tempo restante para descarga completa (segundos):", battery.dischargingTime);
    });

    battery.addEventListener("levelchange", () => {
        console.log("Nível de carga:", battery.level);
    });
});

Considerações finais

O BatteryManager é uma ferramenta poderosa para criar experiências web mais conscientes do consumo de energia. Por exemplo, é possível ajustar a qualidade de vídeos ou desativar funcionalidades que consomem muitos recursos quando a bateria está baixa. Além disso, os eventos permitem que você reaja dinamicamente às mudanças no status da bateria, oferecendo uma melhor experiência para o usuário.

Política de Privacidade

Copyright © www.programicio.com Todos os direitos reservados

É proibida a reprodução do conteúdo desta página sem autorização prévia do autor.

Contato: programicio@gmail.com