
JavaScript Battery API
Jak v JS zjistit stav baterie, co dnes funguje a kdy API nepoužívat.
Některé operace a efekty na webové stránce mohou být náročné na hardware a následně lidově řečeno žrát baterku. Pomocí Battery Status API lze zjistit aktuální stav baterie a podle toho upravit chování aplikace (např. snížit frekvenci animací, odložit náročné výpočty, omezit synchronisace).
Podpora
Kvůli risikům pro soukromí byla podpora Battery Status API v některých prohlížečích omezena nebo odstraněna. Firefox jej odstranil od verze 52, Safari nepodporuje. V Chrome je dostupné pouze v secure contextu (HTTPS) a podpora se může měnit. API používejte jen tehdy, když přináší jasný užitek.
Prohlížeče: Chrome/Edge/Opera – omezeně podporováno, Firefox – odstraněno, Safari – nepodporováno.
Jak funguje
API je dostupné přes metodu navigator.getBattery(), která vrací objekt BatteryManager obsahující vlastnosti level, charging, chargingTime a dischargingTime a související události.
navigator.getBattery().then((battery) => {
console.log(Math.round(battery.level * 100) + "%");
console.log(battery.charging ? "Nabíjí se" : "Na baterii");
});
Živá ukázka
Ukázka bezpečně detekuje podporu API a průběžně zobrazuje stav. V nepodporovaných prohlížečích zobrazí informaci o nepodpoře.
Detekuji podporu…
Související články
JavaScript null a undefined
Rozdíly mezi null a undefined v JavaScriptu, kdy je používat a jak se vyhnout běžným chybám.
Sleep v JavaScriptu
Jak implementovat sleep/delay funkcionalitu v JavaScriptu pomocí Promise a async/await