
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 wirdtrue
zurückgegeben. Ansonsten, beispielsweise bei einem Standrechner,false
.isCharging
SofernisBattery true
ist, also der Rechner eine Batterie zur Stromversorgung nutzt, kann überprüft werden, ob das Gerät im Moment geladen wird. Auch hier wirdtrue
oderfalse
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 Attributnull
zurück.timeRemaining
Wieviel Sekunden der Computer mit dem derzeitigen Batterie-Stand noch ladefähig ist, kann man über dieses Attribut erfahren. Hier wird ebenfallsnull
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.