Obtenir le niveau de batterie en JavaScript : API Battery Status
L'API Battery Status (`navigator.getBattery()`) fournit infos batterie dans navigateurs supportés (Chrome, Edge, Firefox, Opera ; pas Safari/iOS).
Utilisation basique
// Vérifier support
if ('getBattery' in navigator) {
navigator.getBattery().then(battery => {
// Niveau actuel (0.0 à 1.0)
console.log(`Niveau batterie: ${Math.round(battery.level * 100)}%`);
// État charge
console.log(`En charge: ${battery.charging}`);
console.log(`Temps charge: ${battery.chargingTime} sec`);
console.log(`Temps décharge: ${battery.dischargingTime} sec`);
// Écouteurs événements
battery.addEventListener('levelchange', () => {
console.log(`Niveau changé: ${battery.level}`);
});
battery.addEventListener('chargingchange', () => {
console.log(`Charge: ${battery.charging}`);
});
});
} else {
console.log('API Batterie non supportée');
}
Propriétés clés
level: 0.0–1.0 (×100 pour %).charging: booléen.chargingTime: secondes jusqu'à plein (Infinity si pas en charge).dischargingTime: secondes jusqu'à vide (Infinity si en charge).
Limites & Vie privée
- Risque fingerprinting : API peut identifier utilisateurs. Navigateurs peuvent arrondir/quantifier (ex: pas 10%).
- Pas support Safari/iOS. Utilisez fallback (user agent, UI générique).
- Contexte sécurisé requis : HTTPS ou localhost.
- Desktop : Retourne souvent 1.0 / charging=true (pas batterie).
Polyfill / Alternative
Pour multi-plateforme, utilisez librairie UI qui dégrade gracieusement ou détection appareil côté serveur (pas temps réel).
