ما هي واجهة برمجة تطبيقات الاهتزاز؟

واجهة برمجة تطبيقات الاهتزاز (navigator.vibrate()) هي معيار متصفح يسمح لصفحات الويب بتفعيل محرك الاهتزاز الفيزيائي المدمج في الهواتف الذكية وبعض الأجهزة اللوحية. تقبل إما مدة واحدة بالميلي ثانية أو مصفوفة متناوبة من مدد الاهتزاز والتوقف — تسمى نمط الاهتزاز. تدعم معظم متصفحات Android هذه الواجهة؛ لا يكشف iOS عن الاهتزاز لصفحات الويب بسبب قيود المنصة.

تُوصف أنماط الاهتزاز كمصفوفات حيث تمثل القيم ذات الفهارس الفردية مدد الاهتزاز والقيم ذات الفهارس الزوجية تمثل مدد التوقف. على سبيل المثال، [200, 100, 200] يعني اهتزاز لمدة 200 ميلي ثانية، توقف 100 ميلي ثانية، اهتزاز لمدة 200 ميلي ثانية. استدعاء navigator.vibrate(0) أو navigator.vibrate([]) يلغي أي اهتزاز جاري على الفور.

وصف الأداة

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

أمثلة

إدخال النمط ما يحدث
300 نبضة واحدة تستمر 300 ميلي ثانية
200,100,200 اهتزاز 200 ميلي ثانية → توقف 100 ميلي ثانية → اهتزاز 200 ميلي ثانية
150,100,150,100,150 ثلاث نبضات قصيرة مع فجوات 100 ميلي ثانية بينها
0 يلغي أي اهتزاز جاري

الميزات

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

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

  • تطوير الويب للأجهزة المحمولة: تحقق من أن ردود الفعل اللمسية المنفذة باستخدام واجهة برمجة تطبيقات الاهتزاز تعمل فعلاً على جهاز الهدف قبل إطلاق الميزة.
  • اختبار أجهزة QA: تأكد بسرعة من أن محرك الاهتزاز يعمل على هاتف ذكي جديد أو مُصلح دون تثبيت تطبيق أصلي.
  • نماذج أولية للأنماط: كرر على تسلسلات الاهتزاز المخصصة (تنبيهات الإخطارات، ردود فعل اللعبة، إشارات الوصول) بواسطة اختبارها مباشرة في المتصفح.

كيفية العمل

تستدعي الأداة navigator.vibrate(pattern) بالقيمة التي توفرها. يعيد المتصفح true إذا تم قبول الاستدعاء و false إذا تم رفضه — على سبيل المثال، لأن المستند غير مركز أو الجهاز لا يدعم الواجهة. يتم تسجيل كلا النتيجتين في سجل الأحداث. تتم جميع المعالجات بالكامل على الجهاز؛ لا يتم إرسال أي بيانات إلى أي خادم.

القيود

  • iOS (Safari وChrome على iOS): لا تكشف Apple عن navigator.vibrate() على iOS، لذا يتم الإبلاغ عن الواجهة دائماً كغير مدعومة على iPhones و iPads.
  • متصفحات سطح المكتب: عادة لا تحتوي أجهزة الكمبيوتر على محرك اهتزاز، لذا حتى عندما تكون الواجهة متاحة فإنها لا تؤثر فيزيائياً.
  • علامات التبويب في الخلفية: بعض المتصفحات ترفض بصمت استدعاءات الاهتزاز عندما لا تكون الصفحة في المقدمة.
  • المدة القصوى: يتم تحديد مقاطع الاهتزاز الفردية من قبل المتصفح (عادة حوالي 10 ثوان)؛ قد يتم قطع القيم الكبيرة جداً بصمت.