>> Tecnologia Eletrônica >  >> Celulares e Acessórios >> Baterias para Celular

Obtendo Nível de Bateria em JavaScript: Battery Status API

A Battery Status API (`navigator.getBattery()`) fornece info de bateria em navegadores suportados (Chrome, Edge, Firefox, Opera; não Safari/iOS).

Uso Básico

// Verificar suporte if ('getBattery' in navigator) { navigator.getBattery().then(battery => { // Nível atual (0.0 a 1.0) console.log(`Nível da bateria: ${Math.round(battery.level * 100)}%`); // Estado de carga console.log(`Carregando: ${battery.charging}`); console.log(`Tempo de carga: ${battery.chargingTime} seg`); console.log(`Tempo de descarga: ${battery.dischargingTime} seg`); // Event listeners battery.addEventListener('levelchange', () => { console.log(`Nível alterado: ${battery.level}`); }); battery.addEventListener('chargingchange', () => { console.log(`Carregando: ${battery.charging}`); }); }); } else { console.log('Battery API não suportada'); } 

Propriedades-Chave

  • level: 0.0–1.0 (multiplique por 100 para %).
  • charging: boolean.
  • chargingTime: segundos até cheio (Infinity se não carregando).
  • dischargingTime: segundos até vazio (Infinity se carregando).

Limitações e Privacidade

  • Risco de fingerprinting: API pode identificar usuários. Navegadores podem arredondar/quantizar (ex.: passos de 10%).
  • Sem suporte Safari/iOS. Use fallback (user agent, UI genérica).
  • Contexto seguro necessário: HTTPS ou localhost.
  • Desktop: Frequentemente retorna 1.0 / charging=true (sem bateria).

Polyfill / Alternativa

Para multiplataforma, use biblioteca UI que degrada graciosamente ou detecção server-side de dispositivo (não tempo real).