"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > استكشاف واجهة برمجة تطبيقات حالة البطارية في JavaScript

استكشاف واجهة برمجة تطبيقات حالة البطارية في JavaScript

تم النشر بتاريخ 2024-11-08
تصفح:600

Exploring the Battery Status API in JavaScript

توفر واجهة برمجة تطبيقات حالة البطارية لمطوري الويب القدرة على الوصول إلى معلومات حول حالة بطارية الجهاز الذي يعمل عليه تطبيق الويب الخاص بهم. من خلال الاستفادة من واجهة برمجة التطبيقات هذه، يمكنك تحسين تجربة المستخدم من خلال تكييف سلوك التطبيق الخاص بك استنادًا إلى مستوى شحن البطارية وحالة الشحن والوقت المتبقي حتى تفريغها أو شحنها بالكامل.

جدول المحتويات

  • مقدمة
  • دعم المتصفح
  • استخدام واجهة برمجة تطبيقات حالة البطارية
    • التحقق من مستوى البطارية
    • الكشف عن حالة الشحن
    • مراقبة تغييرات حالة البطارية
  • حالات الاستخدام العملي
    • وضع توفير الطاقة
    • تحميل المحتوى التكيفي
    • تخصيص الإشعارات
  • القيود والاعتبارات
  • خاتمة
  • مراجع

مقدمة

مع استمرار استخدام الهاتف المحمول في السيطرة على الويب، أصبح تحسين تطبيقات الويب لتحسين كفاءة البطارية ذا أهمية متزايدة. تتيح واجهة برمجة تطبيقات حالة البطارية للمطورين إمكانية الوصول إلى المعلومات الحيوية حول بطارية الجهاز، مما يسمح لهم باتخاذ قرارات مستنيرة يمكنها إطالة عمر البطارية وتحسين تجربة المستخدم بشكل عام.

توفر واجهة برمجة التطبيقات أربع خصائص رئيسية:

  • المستوى: يشير إلى مستوى شحن البطارية كنسبة مئوية.
  • الشحن: قيمة منطقية تشير إلى ما إذا كانت البطارية قيد الشحن حاليًا.
  • وقت الشحن: الوقت المتبقي بالثواني حتى يتم شحن البطارية بالكامل.
  • وقت التفريغ: الوقت بالثواني المتبقية حتى يتم تفريغ البطارية بالكامل.

في هذه المقالة، سنستكشف كيفية استخدام هذه الخصائص في JavaScript لإنشاء المزيد من التطبيقات المتوافقة مع البطارية.

دعم المتصفح

يتم دعم واجهة برمجة تطبيقات حالة البطارية من قبل معظم المتصفحات الرئيسية، على الرغم من أنها متوفرة بشكل أساسي على الأجهزة المحمولة. اعتبارًا من وقت كتابة هذا التقرير، تكون واجهة برمجة التطبيقات (API) مدعومة بالكامل في المتصفحات التالية:

  • Chrome: مدعوم (حتى الإصدار 38)
  • فايرفوكس: مدعوم (الإصدار 43-51)
  • الحافة: مدعوم (حتى الإصدار 79)
  • رحلات السفاري: لا يوجد دعم
  • Opera: مدعوم (حتى الإصدار 25)
  • هل يمكنني الاستخدام

ومع ذلك، من المهم ملاحظة أنه نظرًا لمخاوف الخصوصية، فقد تم إهمال واجهة برمجة تطبيقات حالة البطارية ولم تعد مدعومة على نطاق واسع في المتصفحات الحديثة. وهذا يجعل فهم استخدامه ذا قيمة في المقام الأول للأنظمة القديمة أو التطبيقات المخصصة.

استخدام واجهة برمجة تطبيقات حالة البطارية

التحقق من مستوى البطارية

الخطوة الأولى في استخدام واجهة برمجة تطبيقات حالة البطارية هي التحقق من مستوى الشحن الحالي للبطارية. يمكنك الوصول إلى هذه المعلومات عن طريق الاستعلام عن طريقة navigator.getBattery()، والتي تُرجع وعدًا يحل كائن BatteryManager.

navigator.getBattery().then(function(battery) {
    console.log(`Battery Level: ${battery.level * 100}%`);
});

في هذا المثال، تقوم خاصية مستوى البطارية بإرجاع قيمة بين 0.0 و1.0، تمثل مستوى الشحن كنسبة مئوية.

الكشف عن حالة الشحن

يمكنك أيضًا تحديد ما إذا كان الجهاز قيد الشحن حاليًا عن طريق التحقق من خاصية البطارية.شحن، والتي تقوم بإرجاع قيمة منطقية.

navigator.getBattery().then(function(battery) {
    if (battery.charging) {
        console.log("The device is currently charging.");
    } else {
        console.log("The device is not charging.");
    }
});

يمكن أن تكون هذه المعلومات حاسمة لاتخاذ القرارات بشأن موعد أداء المهام كثيفة الاستهلاك للطاقة.

مراقبة التغيرات في حالة البطارية

تتيح لك واجهة برمجة تطبيقات حالة البطارية أيضًا مراقبة التغييرات في حالة البطارية، مثل وقت بدء تشغيل الجهاز أو توقفه عن الشحن أو عندما يتغير مستوى البطارية. يمكن تحقيق ذلك عن طريق إضافة مستمعي الأحداث إلى كائن BatteryManager.

navigator.getBattery().then(function(battery) {
    function updateBatteryStatus() {
        console.log(`Battery Level: ${battery.level * 100}%`);
        console.log(`Charging: ${battery.charging}`);
        console.log(`Charging Time: ${battery.chargingTime} seconds`);
        console.log(`Discharging Time: ${battery.dischargingTime} seconds`);
    }

    // Initial battery status
    updateBatteryStatus();

    // Add event listeners
    battery.addEventListener('chargingchange', updateBatteryStatus);
    battery.addEventListener('levelchange', updateBatteryStatus);
    battery.addEventListener('chargingtimechange', updateBatteryStatus);
    battery.addEventListener('dischargingtimechange', updateBatteryStatus);
});

يضمن هذا الأسلوب أن يظل تطبيقك مستجيبًا لتغيرات حالة البطارية في الوقت الفعلي، مما يسمح لك بتحسين الأداء ديناميكيًا.

حالات الاستخدام العملي

وضع توفير الطاقة

إحدى حالات الاستخدام العملي لواجهة برمجة تطبيقات حالة البطارية هي تنفيذ وضع توفير الطاقة في تطبيق الويب الخاص بك. على سبيل المثال، إذا انخفض مستوى البطارية إلى ما دون حد معين، فيمكنك تقليل تكرار المهام في الخلفية، أو تقييد الرسوم المتحركة، أو تعطيل الميزات كثيفة الاستخدام للموارد.

navigator.getBattery().then(function(battery) {
    if (battery.level 



تحميل المحتوى التكيفي

حالة الاستخدام الأخرى هي تكييف استراتيجية تحميل المحتوى بناءً على حالة البطارية. على سبيل المثال، يمكنك تأخير التنزيلات غير الضرورية أو التبديل إلى تدفقات الوسائط ذات الجودة المنخفضة إذا كانت البطارية منخفضة.

navigator.getBattery().then(function(battery) {
    if (battery.level 



تخصيص الإخطار

يمكنك أيضًا استخدام واجهة برمجة تطبيقات حالة البطارية لتخصيص الإشعارات. على سبيل المثال، إذا كانت طاقة البطارية منخفضة، فقد ترغب في إعطاء الأولوية للإشعارات المهمة على الإشعارات الأقل أهمية.

navigator.getBattery().then(function(battery) {
    if (battery.level 



القيود والاعتبارات

على الرغم من أن واجهة برمجة تطبيقات حالة البطارية توفر العديد من المزايا المحتملة، إلا أنها تأتي أيضًا مع قيود:

  1. مخاوف الخصوصية : يمكن استخدام واجهة برمجة التطبيقات لاستنتاج معلومات حول جهاز المستخدم وعاداته، مما يؤدي إلى مخاوف تتعلق بالخصوصية. وقد أدى هذا إلى إهمالها في العديد من المتصفحات.

  2. دعم محدود : كما ذكرنا سابقًا، تمت إزالة دعم واجهة برمجة تطبيقات حالة البطارية من معظم المتصفحات الحديثة بسبب مشكلات الخصوصية.

  3. تقلب تقارير البطارية : يمكن أن تختلف دقة حالة البطارية المُبلغ عنها عبر الأجهزة وقد لا تعكس دائمًا الحالة الدقيقة للبطارية.

نظرًا لهذه الاعتبارات، من المهم استخدام واجهة برمجة التطبيقات هذه بحذر والنظر في طرق بديلة لتحقيق وظائف مماثلة، خاصة في بيئات تطوير الويب الحديثة.

خاتمة

توفر واجهة برمجة تطبيقات حالة البطارية، على الرغم من إهمالها إلى حد كبير الآن، طريقة فريدة لإنشاء تطبيقات ويب أكثر كفاءة في استخدام البطارية من خلال السماح للمطورين بالاستجابة للتغيرات في حالة البطارية. على الرغم من أن استخدامه محدود بسبب مخاوف الخصوصية ودعم المتصفح، إلا أنه بمثابة دراسة حالة مثيرة للاهتمام حول كيفية تفاعل تقنيات الويب مع أجهزة الجهاز لتحسين تجربة المستخدم.

إذا كنت تعمل مع أنظمة قديمة أو تستكشف إمكانات الويب لبيئات معينة، فإن فهم واجهة برمجة تطبيقات حالة البطارية وتجربتها لا يزال من الممكن أن يقدم رؤى قيمة.

مراجع

  • مستندات ويب MDN: واجهة برمجة التطبيقات لحالة البطارية
  • هل يمكنني استخدام: واجهة برمجة تطبيقات حالة البطارية
  • مواصفات W3C لواجهة برمجة تطبيقات حالة البطارية

بيان الافراج تم إعادة نشر هذه المقالة على: https://dev.to/free_programmers/exploring-the-battery-status-api-in-javascript-318f?1 إذا كان هناك أي انتهاك، يرجى الاتصال بـ [email protected] لحذفه
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3