Ottenere il Livello Batteria in JavaScript: Battery Status API
La Battery Status API (`navigator.getBattery()`) fornisce informazioni sulla batteria nei browser supportati (Chrome, Edge, Firefox, Opera; non Safari/iOS).
Utilizzo Base
// Controlla supporto if ('getBattery' in navigator) { navigator.getBattery().then(battery => { // Livello attuale (0.0 a 1.0) console.log(`Livello batteria: ${Math.round(battery.level * 100)}%`); // Stato di carica console.log(`In carica: ${battery.charging}`); console.log(`Tempo di carica: ${battery.chargingTime} sec`); console.log(`Tempo di scarica: ${battery.dischargingTime} sec`); // Event listener battery.addEventListener('levelchange', () => { console.log(`Livello cambiato: ${battery.level}`); }); battery.addEventListener('chargingchange', () => { console.log(`In carica: ${battery.charging}`); }); }); } else { console.log('Battery API non supportata'); } Proprietà Chiave
level: 0.0–1.0 (moltiplica per 100 per %).charging: booleano.chargingTime: secondi fino al pieno (Infinity se non in carica).dischargingTime: secondi fino allo scarico (Infinity se in carica).
Limitazioni e Privacy
- Rischio fingerprinting: L'API può identificare gli utenti. I browser possono arrotondare/quantizzare (es. passi del 10%).
- Nessun supporto Safari/iOS. Usa fallback (user agent, UI generica).
- Contesto sicuro richiesto: HTTPS o localhost.
- Desktop: Spesso restituisce 1.0 / charging=true (nessuna batteria).
Polyfill / Alternativa
Per multipiattaforma, usa una libreria UI che degradi graziosamente o rilevamento dispositivo lato server (non in tempo reale).