JavaScript Battery Navigator API
JavaScript'de batarya ile ilgili bilgilere ulaşmak için navigator
API'sinin altında bulunan getBattery()
metodunu kullanabilirsiniz.
Bu metod bir promise
olarak BatteryManager
nesnesini döndürür. Bunun içinde ise batarya ile ilgili şu özellikler döner:
level
- bataryanın seviyesicharging
- bataryanın şarj olup olmadığıchargingTime
- tam şarj süresidischargingTime
- tahmini şarj bitiş süresi
Ayrıca şu metodları kullanabiliriz:
chargingchange
- bataryanın şarj olup olmadığını dinlerlevelchange
- bataryanın seviyesini dinlerchargingtimechange
- tam şarj süresini dinlerdischargingtimechange
- tahmini şarj bitiş süresini dinler
Tüm bunlara göre hepsini gösteren bir örneği aşağıda bulabilirsiniz:
navigator.getBattery().then(function(battery) {
// Batarya seviyesini yüzde olarak alın
var batteryLevel = battery.level * 100;
// Şarj olup olmadığını kontrol et
var isCharging = battery.charging;
// Tam şarj süresini ve tahmini şarj bitiş süresini alın
var chargingTime = battery.chargingTime;
var dischargingTime = battery.dischargingTime;
console.log("Batarya Seviyesi: " + batteryLevel + "%");
console.log("Şarj Oluyor mu: " + (isCharging ? "Evet" : "Hayır"));
console.log("Tam Şarj Süresi: " + chargingTime + " saniye");
console.log("Tahmini Şarj Bitiş Süresi: " + dischargingTime + " saniye");
battery.addEventListener('chargingchange', function() {
console.log("Şarj Oluyor mu: " + (battery.charging ? "Evet" : "Hayır"));
});
battery.addEventListener('levelchange', function() {
console.log("Batarya Seviyesi: " + (battery.level * 100) + "%");
});
battery.addEventListener('chargingtimechange', function() {
console.log("Tam Şarj Süresi: " + battery.chargingTime + " saniye");
});
battery.addEventListener('dischargingtimechange', function() {
console.log("Tahmini Şarj Bitiş Süresi: " + battery.dischargingTime + " saniye");
});
}).catch(function(error) {
console.error("Batarya bilgisi alınamadı: " + error.message);
});
Ek olarak şarj süresi ve tahmini bitiş süresini daha uygun bir formatta göstermek için aşağıdaki yardımcı fonksiyonu kullanabilirsiniz:
function secondsToHMS(seconds) {
var hours = Math.floor(seconds / 3600);
var minutes = Math.floor((seconds % 3600) / 60);
var remainingSeconds = Math.floor(seconds % 60);
var result = '';
if (hours > 0) {
result += hours + "sa ";
}
if (minutes > 0) {
result += minutes + "dk ";
}
if (remainingSeconds > 0 || result === '') {
result += remainingSeconds + "sn";
}
return result.trim();
}