Sprytne Okazje — promocje, kody rabatowe i wyprzedaże

Sprawdzanie Battery Status API

Sprawdź czy Twoja przeglądarka obsługuje Battery Status API. Wyświetl aktualny poziom baterii, stan ładowania i szacowany czas. Narzędzie dla deweloperów. Bezpłatnie.

Bezpieczne (SSL)
Przetwarzanie Lokalne
100% Darmowe
Instrukcja
  • 1
    Wprowadź dane
    Wpisz treść, wklej tekst lub załaduj plik z dysku.
  • 2
    Kliknij przycisk
    Narzędzie natychmiast przetworzy Twoje dane w przeglądarce.
  • 3
    Pobierz wynik
    Skopiuj gotowy tekst lub zapisz plik na urządzeniu.
function runTool() {
  return "Wynik gotowy w 0.1s";
}
Odczyt jeszcze nie wykonany — przeglądarka pobiera dane lokalnie przez navigator.getBattery(); wynik pojawi się tutaj automatycznie.

Odczyt pochodzi z API przeglądarki (navigator.getBattery()) i dotyczy urządzenia, na którym otwarto tę stronę — jest wykonywany lokalnie, nic nie jest wysyłane na serwer. API działa w Chrome, Edge i Operze (komputer i Android) na stronach HTTPS. Firefox i Safari go nie udostępniają, a na komputerze stacjonarnym bez baterii przeglądarka zwykle zgłasza 100% i zasilanie sieciowe.

Odczyt odświeża się automatycznie przy zdarzeniach zmiany stanu baterii — skrypt nasłuchuje wszystkich czterech (levelchange, chargingchange, chargingtimechange, dischargingtimechange).
Właściwość APIJak używa jej narzędzie
Poziom naładowania (level) liczba 0–1 z API; narzędzie zaokrągla do procentów 0–100 i pokazuje na pasku oraz w kafelku „Poziom naładowania”
Zasilanie (charging) prawda/fałsz: zasilacz czy bateria; kafelek pokazuje „ładowanie” albo „bateria”, a opis dodaje stan „Naładowana” przy pełnym poziomie
Do pełnego naładowania (chargingTime) szacunek przeglądarki w sekundach; format „2 godz. 15 min”, a tuż po zmianie stanu może być „brak szacunku”
Pozostały czas pracy (dischargingTime) szacunek sekund do wyczerpania baterii przy zasilaniu z akumulatora; nieskończoność i wartości ujemne traktowane jako „brak szacunku”
Status poziomu progi ze skryptu: do 10% bez ładowania = Problem (pasek czerwienieje), do 20% = Uwaga, powyżej albo przy ładowaniu = OK
Zdarzenia na żywo cztery obserwatory API: levelchange, chargingchange, chargingtimechange, dischargingtimechange — każda zmiana dopisuje wpis w dzienniku i odświeża kafelki
Skrypt sprawdza navigator.getBattery() i bezpieczny kontekst, a przy braku wsparcia pokazuje komunikat z przyczyną zamiast pustej strony.
ŚrodowiskoOdczytSzczegóły
Chrome, Edge, Opera — komputer TAK pełny odczyt: poziom, ładowanie i oba szacunki czasu
Chrome, Edge, Opera — Android TAK pełny odczyt, strona musi być na HTTPS
Firefox NIE celowo nie udostępnia API ze względów prywatności
Safari (macOS, iPhone, iPad) NIE celowo nie udostępnia API ze względów prywatności
Strona bez HTTPS NIE API wymaga bezpiecznego kontekstu (isSecureContext)
Komputer bez baterii — przeglądarka zwykle zgłasza 100% i zasilanie sieciowe — odczyt jest, ale nie opisuje realnej baterii

Warto wiedzieć — Battery API a prywatność i interpretacja odczytu

Prywatność i fingerprinting

Dokładny stan baterii bywał używany do śledzenia użytkowników — kombinacja poziomu i szacowanego czasu tworzy odcisk palca urządzenia. Dlatego API jest wycofywane ze specyfikacji, a Firefox i Safari celowo go nie wdrożyły.

Odczyt zostaje u Ciebie

Skrypt liczy i rysuje wszystko w przeglądarce — poziom, stan ładowania, szacunki i dziennik zdarzeń nie opuszczają urządzenia. Wyłączenie internetu po załadowaniu strony nie zatrzyma działania narzędzia.

Szacunki czasu potrafią „dojść”

Tuż po podłączeniu albo odłączeniu zasilania przeglądarka często zgłasza brak szacunku lub wartość nierealną. Poczekaj chwilę i kliknij „Odczytaj ponownie” — system potrzebuje czasu na kalibrację.

Niski poziom — co oznaczają kolory

Pasek zmienia kolor przy progach z narzędzia: do 20% bez ładowania to Uwaga, do 10% to Problem. To sygnał, by podłączyć zasilanie — nie jest to diagnostyka akumulatora ani porada serwisowa.

Oceń to narzędzie:

Powiązane narzędzia

Inne narzędzia, które mogą Ci się przydać

Battery Status API – testowanie obsługi baterii w przeglądarce

Battery Status API (W3C) pozwala aplikacjom webowym odczytać poziom baterii urządzenia przez JavaScript. Narzędzie testuje czy Twoja przeglądarka udostępnia te dane i wyświetla aktualne informacje: poziom naładowania, stan ładowania, czas do pełnego naładowania lub rozładowania.

Battery Status API poziom baterii JavaScript navigator.getBattery() sprawdź baterię przeglądarka

Czym jest Battery Status API

Battery Status API (specyfikacja W3C) udostępnia JavaScript API: navigator.getBattery() zwraca Promise z obiektem BatteryManager. Właściwości: battery.level (0.0–1.0, poziom naładowania), battery.charging (boolean, czy ładuje), battery.chargingTime (sekundy do pełna), battery.dischargingTime (sekundy do rozładowania). Eventy: chargingchange, chargingtimechange, dischargingtimechange, levelchange.

Obsługa w przeglądarkach

Chrome: obsługiwany (Desktop i Android). Firefox: usunięty w v52+ (prywatność – fingerprinting). Safari: brak obsługi. Edge: obsługiwany (Chromium-based). Opera: obsługiwany. Uwaga: wiele przeglądarek celowo ogranicza lub usuwa API ze względu na privacy (bateria mogła być używana do fingerprinting użytkownika).

Przykład kodu JavaScript

navigator.getBattery().then(battery => { console.log(battery.level*100 + "%"); console.log(battery.charging ? "Ładowanie" : "Bateria"); console.log(battery.chargingTime + " s do pełna"); battery.addEventListener("levelchange", () => { console.log("Zmiana:", battery.level); }); });

Zastosowania Battery API

PWA (Progressive Web App): dostosuj zachowanie przy niskiej baterii (zmniejsz polling, odłącz WebSocket). Gry webowe: tryb oszczędzania energii. Analityka: sprawdź czy użytkownicy z niską baterią mają wyższy bounce rate. Powiadomienia: "Bateria niska – zapisz pracę". Monitoring: alertuj użytkownika przy < 20%.

Jak działa sprawdzanie poziomu baterii w przeglądarce

Po kliknięciu przycisku testu strona najpierw sprawdza, czy w obiekcie navigator istnieje metoda getBattery. To jedno pytanie decyduje o wszystkim: jeśli metody nie ma, przeglądarka nie udostępnia Battery Status API i nie ma skąd pobrać danych. Jeśli metoda jest dostępna, wywołanie zwraca Promise, a więc wynik pojawia się z niewielkim opóźnieniem, a nie natychmiast po kliknięciu.

Po rozwiązaniu Promise otrzymujemy obiekt BatteryManager i odczytujemy z niego cztery właściwości. Poziom naładowania jest podany jako ułamek z zakresu od 0,0 do 1,0, dlatego narzędzie mnoży go przez 100 i pokazuje wartość procentową. Wartość logiczna charging decyduje, czy stan opiszemy jako ładowanie, czy jako pracę na baterii, a chargingTime i dischargingTime to liczby sekund do pełnego naładowania albo do rozładowania.

Ostatni element to nasłuch zdarzeń. Zamiast odpytawać przeglądarkę w pętli, narzędzie rejestruje obsługę zdarzeń levelchange, chargingchange, chargingtimechange i dischargingtimechange. Gdy system zgłosi zmianę, wyświetlane wartości są przeliczane ponownie. Dzięki temu odczyt pozostaje aktualny, a strona nie zużywa dodatkowej energii na ciągłe sprawdzanie stanu baterii.

Przykład krok po kroku

  1. Otwierasz stronę narzędzia w Chrome na laptopie lub w Chrome na Androidzie. Strona nie wykonuje jeszcze żadnego odczytu.
  2. Klikasz przycisk testu. Skrypt sprawdza, czy navigator.getBattery istnieje. W Chrome, Edge i Operze przechodzi do kolejnego kroku, w Safari i Firefoksie zatrzymuje się i pokazuje komunikat o braku obsługi.
  3. Wywołanie navigator.getBattery() zwraca Promise. Do momentu jego rozwiązania nie wiadomo jeszcze, jaki jest poziom baterii, dlatego narzędzie pokazuje stan oczekiwania.
  4. Promise zostaje rozwiązany i zwraca obiekt BatteryManager. Z niego odczytywane są poziom, stan ładowania oraz oba czasy.
  5. Poziom jest zamieniany na procent: wartość 1,0 oznacza 100%, wartość 0,0 oznacza 0%, a wartości pośrednie są proporcjonalne, np. 0,5 to 50%.
  6. Czasy, które API podaje w sekundach, są prezentowane w czytelniejszej formie minut i godzin. Wartości, których API nie potrafi oszacować, pokazywane są jako brak danych.
  7. Do obiektu BatteryManager zostają dopisane nasłuchy zdarzeń. Od tego momentu każda zmiana poziomu lub stanu ładowania odświeża wynik bez ponownego klikania przycisku.

Właściwości i zdarzenia w praktyce

Element APITyp i jednostkaCo odczytuje narzędzie
battery.levelliczba zmiennoprzecinkowa 0,0-1,0Ułamek naładowania; mnożony przez 100 daje wartość procentową, gdzie 1,0 to 100%
battery.chargingwartość logiczna true lub falseInformacja, czy urządzenie jest podłączone do zasilania i ładuje
battery.chargingTimeliczba sekundSzacowany czas do pełnego naładowania; 0 przy pełnej baterii
battery.dischargingTimeliczba sekundSzacowany czas pracy do rozładowania
chargingchangezdarzenie bez danychZmiana stanu ładowania; odświeżenie opis stanu
chargingtimechangezdarzenie bez danychZmiana szacowanego czasu do pełnego naładowania
dischargingtimechangezdarzenie bez danychZmiana szacowanego czasu pracy na baterii
levelchangezdarzenie bez danychZmiana poziomu naładowania; ponowne przeliczenie procentu

Jak korzystać z wyniku

  • Testuj na urządzeniu mobilnym. To na telefonach i tabletach odczyt jest najbardziej sensowny, bo mają realną baterię. Na komputerze stacjonarnym wynik bywa mylący.
  • Reaguj na zdarzenia, nie odpytuj w pętli. Ciągłe sprawdzanie poziomu w interwale samo zużywa energię. Nasłuch four zdarzeń jest tańszy i wystarczający.
  • Zawsze przygotuj plan B. Skoro API nie działa w każdej przeglądarce, funkcja oparta na poziomie baterii musi mieć zachowanie domyślne dla sytuacji, gdy danych nie ma.
  • Nie traktuj wartości jako pomiaru laboratoryjnego. System operacyjny podaje wartości zaokrąglone i szacunkowe, więc różnice o kilka punktów procentowych nie muszą oznaczać realnej zmiany.
  • Sprawdź stan ładowania razem z poziomem. Sam procent bez informacji, czy urządzenie jest podłączone, prowadzi do błędnych wniosków, np. przy 100% na kablu.

Ograniczenia i źródła błędów

  • Brak obsługi w części przeglądarek. Firefox usunął API w wersji 52, a Safari go nie wprowadziło. Wynik testu zależy więc od przeglądarki, a nie od samego urządzenia.
  • Dokładność zależy od systemu. Poziom baterii pochodzi z systemu operacyjnego i bywa zaokrąglany lub aktualizowany rzadko, więc może nie zmieniać się płynnie.
  • Zakres danych jest wąski. API nie podaje napięcia, temperatury, liczby cykli ani stanu zużycia ogniwa, więc nie zastępuje diagnostyki baterii.
  • Czasy są szacunkowe. chargingTime i dischargingTime to prognozy oparte na chwilowym poborze energii. Gdy API nie potrafi ich policzyć, zwraca wartość nieskończoną, co nie jest błędem.

Najczęstsze pytania

Dlaczego Firefox usunął Battery Status API?

W 2015 r. badacze (Olejnik et al.) wykazali że battery.level + battery.chargingTime + battery.dischargingTime = unikalny fingerprint urządzenia ze skutecznością ~67%. Dzięki temu trackerzy mogli śledzić użytkowników nawet po wyczyszczeniu cookies. Firefox usunął API w v52 (2017). Safari nigdy go nie zaimplementował. To jeden z nielicznych przypadków usunięcia zaakceptowanego standardu ze względu na prywatność.

Jak sprawdzić poziom baterii w Node.js?

Battery Status API działa tylko w przeglądarce. W Node.js: systeminformation (npm) – si.battery() zwraca hasBattery, percent, isCharging, timeRemaining. PowerShell (Windows): Get-WmiObject Win32_Battery. Linux: cat /sys/class/power_supply/BAT0/capacity. macOS: pmset -g batt.

Czy Battery API działa na telefonie?

Android Chrome: obsługiwany (fizyczna bateria). Android Firefox: usunięty. iOS Safari: brak obsługi. PWA na Androida z Chrome: dostęp do baterii możliwy. Ionic/Cordova: wtyczka cordova-plugin-battery-status (działa na iOS i Android).

Jak symulować niski poziom baterii w DevTools?

Chrome DevTools: zakładka Sensors (Cmd+Shift+P → "Sensors"). W sekcji Battery: mock battery level, charging state, charging/discharging time. Przydatne do testowania PWA z logiką battery-aware. Firefox: brak symulatora baterii (API usunięte).

Jakie inne API mogą naruszać prywatność?

Fingerprinting APIs: Canvas (unikalny rendering GPU), WebGL (renderer, vendor), AudioContext (AudioWorklet timing), Screen Resolution, Timezone, Language, Plugin list. Battery API był w tej grupie. Privacy Sandbox (Google): próba ograniczenia fingerprinting przy zachowaniu funkcjonalności reklamowej.

Dlaczego narzędzie nie pokazuje poziomu baterii w mojej przeglądarce?

Najprawdopodobniej przeglądarka nie udostępnia Battery Status API. Obsługują je Chrome, Edge i Opera, Firefox usunął je w wersji 52, a Safari nigdy nie wprowadziło. Jeśli metoda navigator.getBattery nie istnieje, strona nie ma skąd pobrać danych.

Czy sprawdzanie baterii działa na Androidzie?

Tak, Chrome na Androidzie udostępnia to API, dlatego na telefonie zwykle zobaczysz poziom naładowania, stan ładowania oraz szacowany czas. Na komputerze wynik może być mniej wiarygodny.

Co oznacza wynik 1,0 na poziomie naładowania?

To pełne naładowanie, czyli 100%. Wartość level jest ułamkiem z zakresu od 0,0 do 1,0, dlatego narzędzie mnoży ją przez 100 i pokazuje procent.

Dlaczego czas ładowania albo rozładowania pokazuje nieskończoność?

Taką wartość zwraca samo API, gdy nie potrafi oszacować czasu. Dzieje się tak na przykład wtedy, gdy urządzenie jest w trakcie rozładowywania i nie ma sensownej prognozy ładowania. To normalne, a nie błąd narzędzia.

Czy strona może odczytać poziom baterii bez mojej zgody?

W przeglądarkach, które udostępniają to API, odczyt nie wymaga osobnej zgody użytkownika. Właśnie dlatego część przeglądarek usunęła tę funkcję lub zgrubia dane, aby utrudnić fingerprinting urządzenia.

Powiązane narzedzia: tester WebGL i GPU, detektor funkcji przegladarki i tester rozdzielczosci ekranu.

Zainstaluj Webp.pl Miej narzędzia we własnej kieszeni!