تشخیص وضعیت باتری در جاوا اسکریپت — از صفر تا صد

۱۴۷ بازدید
آخرین به‌روزرسانی: ۰۷ شهریور ۱۴۰۲
زمان مطالعه: ۲ دقیقه
تشخیص وضعیت باتری در جاوا اسکریپت — از صفر تا صد

اینترفیس BatteryManager روش‌هایی برای دریافت اطلاعات در مورد سطح شارژ باتری سیستم ارائه می‌کند. با استفاده از BatteryManager برای تشخیص وضعیت باتری در جاوا اسکریپت می‌توانیم اطلاعات زیر را به دست آوریم:

  • حالت شارژ شدن
  • درصد باتری
  • زمان مورد نیاز برای شارژ 100%
  • زمان باقیمانده تا تخلیه کامل شارژ باتری

ابتدا باید بررسی کنیم که آیا مرورگر از باتری پشتیبانی می‌کند یا نه؟

1let isBatterySupported = 'getBattery' in navigator;
2if(!isBatterySupported) {
3   console.log("Battery not supported");
4}

زمانی که مرورگر از BatteryManager پشتیبانی بکند، می‌توانیم آن را از متد getBattery در شیء navigator به دست آوریم. به این ترتیب یک promise بازگشت می‌یابد که در زمان resolve شدن آن، شیء BatteryManager را به دست می‌آوریم. این شیء چهار مشخصه و چهار رویداد دارد.

مشخصه‌ها

  • Charging – حالت شارژ شدن را نمایش می‌دهد که یک مقدار بولی True یا False به ترتیب برای زمان شارژ شدن و نشدن باتری دارد.
  • Level – سطح باتری را نمایش می‌دهد.
  • chargingTime - زمان باقیمانده تا رسیدن باتری به سطح شارژ کامل را برحسب ثانیه نمایش می‌دهد. در صورتی که مقدار آن 0 باشد یعنی باتری هم اینک کاملاً شارژ شده است.
  • dischargingTime – زمان باقیمانده تا تخلیه کامل شارژ باتری و متوقف شدن عملکرد سیستم را برحسب ثانیه نشان می‌دهد.

رویدادها

  • Onchargingchange – زمانی تحریک می‌شود که حالت شارژ شدن تغییر کند.
  • Onlevelchange – زمانی تحریک می‌شود که سطح شارژ باتری تغییر کند.
  • Onchargingtimechange – این رویداد زمانی ارسال می‌شود که زمان شارژ شدن باتری به‌روز شود.
  • Ondischargingtimechange – این رویداد زمانی ارسال می‌شود که زمان تخلیه کامل شارژ باتری تغییر پیدا کند.

برای به دست آوردن شیئ Battery به صورت زیر عمل می‌کنیم:

1let batteryPromise = navigator.getBattery();
2batteryPromise.then(batteryCallback);
3
4function batteryCallback(batteryObject) {
5   printBatteryStatus(batteryObject);
6}
7function printBatteryStatus(batteryObject) {
8    console.log("IsCharging", batteryObject.charging);
9    console.log("Percentage", batteryObject.level);
10   
11    console.log("charging Time", batteryObject.chargingTime);
12    console.log("DisCharging Time", batteryObject.dischargingTime);
13}

تشخیص وضعیت باتری در جاوا اسکریپت

نکته: مقدار زمان تخلیه شارژ بی‌نهایت است. اگر باتری در حال حاضر در حالت شارژ شدن باشد و یا اگر سیستم نتواند گزارشی در مورد زمان تخلیه شارژ به دست آورد، این مقدار نمایش می‌یابد.

افزودن رویدادها

اکنون یک رویداد برای تشخیص تغییر سطح شارژ و حالت شارژ شدن در تابع callback شیئ باتری اضافه می‌کنیم:

1function batteryCallback(batteryObject) {
2    printBatteryStatus(batteryObject);
3    batteryObject.addEventListener('chargingchange', function(ev
4    {
5             printBatteryStatus(batteryObject);
6    });
7    batteryObject.addEventListener('levelchange', function(ev
8    {
9             printBatteryStatus(batteryObject);
10    });
11}

رویداد فوق زمانی تحریک می‌شود که سطح شارژ باتری تغییر یابد یا حالت شارژ شدن/نشدن عوض شود. به این ترتیب دیدید که کار کردن با باتری در جاوا اسکریپت با استفاده از اینترفیس BatteryManager تا چه حد آسان است. اگر شما نیز در این رابطه تجربه‌ای دارید می‌توانید آن را با کاربران مجله فرادرس در میان بگذارید.

اگر این مطلب برای شما مفید بوده است، آموزش‌های زیر نیز به شما پیشنهاد می‌شوند:

==

بر اساس رای ۳ نفر
آیا این مطلب برای شما مفید بود؟
اگر بازخوردی درباره این مطلب دارید یا پرسشی دارید که بدون پاسخ مانده است، آن را از طریق بخش نظرات مطرح کنید.
منابع:
swlh
نظر شما چیست؟

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *