This post is a part 2 of Advanced JavaScript APIs post series.
Battery status API can be used in mobile and desktop browsers. It gives us the battery status(charging or not) and level(percentage remaining).
window.navigator.batter property is the heart of Battery status API.
var battery = navigator.battery || navigator.webkitBattery || navigator.mozBattery || navigator.msBattery;
if(battery)
{
console.log("Battery level: " + Math.floor(battery.level * 100) + "%" );//battery level returns a value between 0 and 1. 1 means 100%
console.log("Device is: " + (battery.charging ? "charging" : "discharging"));//battery.charing returns boolean value
console.log("Time required for charing: " + battery.chargingTime);//in seconds
console.log("Time required for discharing: " + battery.dischargingTime);//in seconds
//charging or discharging, status changed
battery.addEventListener("chargingchange", function(){
console.log("Time required for charing: " + battery.chargingTime);
}, false);
//battery level changed
battery.addEventListener("levelchange", function(){
console.log("Battery level: " + Math.floor(battery.level * 100) + "%" );
}, false);
//total charging time changed
battery.addEventListener("chargingtimechange", function(){
console.log("Time required for charing: " + battery.chargingTime);
}, false);
//total discharging time changed
battery.addEventListener("dischargingtimechange", function(){
console.log("Time required for discharing: " + battery.dischargingTime);
}, false);
}
else
{
alert("Battery Status API not supported");
}
if(battery)
{
console.log("Battery level: " + Math.floor(battery.level * 100) + "%" );//battery level returns a value between 0 and 1. 1 means 100%
console.log("Device is: " + (battery.charging ? "charging" : "discharging"));//battery.charing returns boolean value
console.log("Time required for charing: " + battery.chargingTime);//in seconds
console.log("Time required for discharing: " + battery.dischargingTime);//in seconds
//charging or discharging, status changed
battery.addEventListener("chargingchange", function(){
console.log("Time required for charing: " + battery.chargingTime);
}, false);
//battery level changed
battery.addEventListener("levelchange", function(){
console.log("Battery level: " + Math.floor(battery.level * 100) + "%" );
}, false);
//total charging time changed
battery.addEventListener("chargingtimechange", function(){
console.log("Time required for charing: " + battery.chargingTime);
}, false);
//total discharging time changed
battery.addEventListener("dischargingtimechange", function(){
console.log("Time required for discharing: " + battery.dischargingTime);
}, false);
}
else
{
alert("Battery Status API not supported");
}