Battery Status Event – Erklärung und Beispiele

Screenshot W3C Battery-Status-Event

Ein Entwurf ist bereits verfügbar

Die Zeiten in denen Browser lediglich klassische Webseiten darstellen mussten sind längst vorbei. Das Internet rüstet sich für den nächsten großen Paukenschlag – Webapplikationen. Ein weiterer kleiner Schritt hin zum Browser und weg vom klassischen Betriebssystem ebnet das W3C mit dem Entwurf des Battery-Status-Events. Mit diesem soll es möglich sein, Abfragen über den Batterie-Zustand des vom Benutzer verwendeten Gerätes abzusetzen, eine Batterie-Anzeige nachzubauen und bei Bedarf auf Veränderungen zu reagieren.

Tolle Sache, wie funktioniert es?

Der Entwurf des Batterie-Status-Events ist noch sehr jung und eine Implementierung der Browserhersteller steht noch aus (Stand 13. Mai 2011) – Ein erstes Testen ist daher nicht möglich. Der voraussichtliche Funktionsumfang kann allerdings schon jetzt in der Spezifikation nachgelesen werden.

Die Attribute und Events

Über das window.batterystatus Objekt können künftig vier Informationen über die Batterie bezogen werden:

  • isBattery
    Nutzt der gerade verwendete Rechner überhaupt eine Batterie, dann wird true zurückgegeben. Ansonsten, beispielsweise bei einem Standrechner, false.
  • isCharging
    Sofern isBattery true ist, also der Rechner eine Batterie zur Stromversorgung nutzt, kann überprüft werden, ob das Gerät im Moment geladen wird. Auch hier wird true oder false als Rückgabewert verwendet.
  • level
    Mit diesem Attribut kann abgefragt werden wieviel Prozent Akku in der Batterie vorhanden ist – man erhält eine Zahl zwischen 0 und 100. Sofern der Zustand nicht ermittelt werden kann, liefert das Attribut null zurück.
  • timeRemaining
    Wieviel Sekunden der Computer mit dem derzeitigen Batterie-Stand noch ladefähig ist, kann man über dieses Attribut erfahren. Hier wird ebenfalls null zurückgegeben, sofern der Wert nicht ermittelt werden kann.

Für all diese Attribute gibt es auch Events, die sobald eine Änderung am Batterie-Status eintritt feuern. Bei level geschieht dies, wenn eine Änderung mit mindestens 1% vorliegt, bei timeRemaining wenn sich mehr als eine Minute seit dem letzten Aufruf verändert hat.

Wie bei jedem Event gibt es auch hier die Möglichkeit via addEventListener auf Ereignisse zu warten oder mit der window.onbatterstatus-Methode eine Funktion zu definieren, die bei einem Wechsel ausgeführt wird.

Beispiele

Aus mangelndem Browser-Support sind meine Beispiele eher als persönliche Interpretation der Spezifikation zu verstehen. Trotzdem ein kleiner Einblick einer möglichen Anwendung:

<script>
    window.addEventListener('batterystatus', function (event) {
        if(event.level < 3) {
            alert(“Ihr Akku neigt sich dem Ende, wollen Sie das Dokument speichern?”);
        }
        if(event.timeRemaining) {
            infoBox.innerHTML(“Sie können noch ” + (event.timeRemaining / 60)
+ ‘Minuten mit Ihrer Batterie arbeiten.’);
        }
    }, true);
</script>

 

Brauchen wir das überhaupt?

Ob Informationen über den Batteriezustand in einer Web-Applikation etwas zu suchen haben oder nicht, kann diskutiert werden. Es gibt allerdings Anwendungsfälle, die für Webentwickler interessant sein könnten. Sofern sich der Batteriezustand des Benutzers auf unter 3% bewegt, könnte man beginnen, einen Warnhinweis anzuzeigen bzw. die Benutzerdaten zu sichern, um Datenverlust zu vermeiden. Und seien wir ehrlich, so ein Batterie-Icon, gesteuert mit JavaScript, ist nerdig genug, um es zumindest einmal probiert zu haben! Mal sehen welcher Browser dieses Event zuerst implementiert. Sobald es Änderungen an dieser Front gibt, veröffentliche ich hier erste Real-Demos und weitere Informationen.