Введение в API батареи Javascript

Не зная состояния батареи устройства, веб-разработчик должен спроектировать веб-приложение с предположением о достаточном уровне заряда батареи для выполняемой задачи. Это означает, что батарея устройства может разряжаться быстрее, чем хотелось бы, потому что веб-разработчики не могут принимать решения на основе состояния батареи.

Care Вы заботитесь о задачах, связанных с батареей, при программировании веб-приложения?

Пожалуйста, поделитесь своим ответом с сообществом в поле для комментариев.

Во многих случаях этот API может быть полезен:

  • Это может быть использовано для настройки использования ресурсов вашего приложения, чтобы уменьшить расход заряда батареи, когда батарея разряжена.
  • Сохраните изменения в чем-то вроде редактора до того, как батарея разрядится, чтобы предотвратить потерю данных.
  • Создайте классный виджет в вашем приложении, чтобы показать состояние батареи для вашего пользователя.

Давайте начнем !

Проверка доступности

Чтобы проверить, доступен ли API-интерфейс батареи в вашем браузере, используйте любое из следующих утверждений if:

if(typeof(navigator.getBattery) != "undefined"){
console.log("Available");
}
// Or
if("getBattery" in navigator){
console.log("Available");
}

Хотя Battery API не является относительно новым,

Источник: Могу ли я использовать.

И нет, для этого API нет доступного полифилла, как вы заполняете что-то, что требует доступа к оборудованию?.

Все, что вам нужно знать об API

Чтобы использовать Battery API, используйте следующий фрагмент:

navigator.getBattery().then(function(battery){
console.log(battery.charging); // Boolean
console.log(battery.chargingTime); // Infinity
console.log(battery.dischargingTime); // Infinity
console.log(battery.level ); // Float (0 to 1)
});

API батареи возвращает нативный Promise, что означает, что это асинхронный метод .

Battery API предоставляет информацию об уровне заряда батареи системы и позволяет получать уведомления о событиях, которые отправляются при изменении уровня заряда батареи или состояния зарядки.

  • charging Атрибут представляет состояние зарядки батареи системы.
  • chargingTime Атрибут представляет время, оставшееся в секундах до полной зарядки батареи системы.
  • dischargingTime Атрибут представляет время, оставшееся в секундах до полной разрядки батареи системы и остановки системы.
  • level Атрибут представляет уровень заряда системы.

API дополнительно предоставляет 4 события для проверки изменения свойства.

обработчик события
обработчик события
onchargingchangechargingchange
onchargingtimechangechargingtimechange
ondischargingtimechangedischargingtimechange
onlevelchangelevelchange

Вы можете легко добавить слушателей, используя:

navigator.getBattery().then(function(battery){
battery.onlevelchange = function(){
alert("The battery level has changed");
};
// Or
battery.addEventListener("levelchange",function(){
alert("The battery level has changed");
},false);
});

Как проверить, используете ли вы настольный компьютер

Хотя это не имеет смысла, API батареи также доступен на настольном компьютере, и нет никакого способа узнать, использует ли пользователь ноутбук или настольный компьютер, однако вы можете сделать «предположение» с помощью следующего фрагмента.

Вы можете проверить, используете ли вы настольный компьютер, проверяя, dischargingTime свойство конечно или нет, и проверка, если charging свойство имеет значение true.

navigator.getBattery().then(function(battery){
var desktopOrLaptopConnectedInfo = function(_battery){
if((_battery.charging === true) && !isFinite(_battery.dischargingTime)){
console.log("Desktop detected");
}
// or
//if((data.charging === true) && (data.dischargingTime == Infinity)){
//    console.log("Desktop detected");
//}
};
// And you may want to check when again if is a laptop and the
// charging property changes
battery.addEventListener('chargingchange', function(){
desktopOrLaptopConnectedInfo(battery);
});
});

К сожалению, если пользователь использует ноутбук и отсоединяет зарядное устройство, то предположение не удастся, и вам потребуется добавить слушатель зарядки для проверки еще раз.

Замечания: Вы можете проверить в операторе if свойство уровня, равное 1 (что указывает на то, что «батарея» полностью заряжена), чтобы повысить точность как свойства chargingTime а также dischargingTime всегда равны бесконечности.

Ссылка на основную публикацию
Adblock
detector