إضافة التحكم بالاهتزاز في كوردوفا

من موسوعة حسوب
< Cordova
مراجعة 22:23، 3 ديسمبر 2020 بواسطة محمد-بغات (نقاش | مساهمات) (تحديث)
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)
اذهب إلى التنقل اذهب إلى البحث

هذه الإضافة متوافقة مع مواصفات الاهتزاز في W3، إذ توفر طريقة للتحكم في اهتزاز الجهاز.

تعرّف هذه الإضافة كائناتٍ عامة، من بينها الكائن navigator.vibrate.

على الرغم من أنّ هذه الكائنات موجودة في النطاق العام (global scope)، إلا أنّها لن تكون متاحة إلا بعد إطلاق الحدث deviceready.

document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
    console.log(navigator.vibrate);
}

التثبيت

يمكن تثبيت هذه الإضافة عبر الأمر التالي:

cordova plugin add cordova-plugin-vibration‎

المنصات المدعومة

يدعم عارض أندرويد (ذو الواجهة البرمجية من المستوى 19 وما يليه) الواجهةَ البرمجية لمواصفات الاهتزاز من W3C بشكل أصلي؛ وتبعًا لذلك، فقد تم تجاهل مواصفات التقديم (implementation) الخاص بأندرويد لهذه الإضافة.

vibrate

تقوم هذه الدالة بثلاث وظائف مختلفة، بناءً على المعاملات المُمرّرة إليها.

الاهتزاز العادي (Standard vibrate)

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

navigator.vibrate(time)
// أو
navigator.vibrate([time])

يمثِّل المعامل time عدد صحيح أو مصفوفة تحدِّد مدة الاهتزاز بالميلي ثواني.

إليك المثال التالي:

// الاهتزاز لثلاث ثواني
navigator.vibrate(3000);
// الاهتزاز لثلاث ثواني
navigator.vibrate([3000]);

ملاحظات خاصة بمنصة أندرويد

استدعاء navigator.vibrate سيعيد فورًا القيمة false إذا لم ينقر المستخدم على الإطار (frame) أو أي إطار مضمن خلال الاهتزاز. يرجى مراجعة هذه الصفحة لمزيد من المعلومات.

ملاحظات خاصة بمنصة iOS

  • تتجاهل منصة iOS الوقت المحدد عبر المعامل time، إذ يهتز الجهاز لمدة محددة مسبقًا.
navigator.vibrate (3000)  // 3000  يتم تجاهله

ملاحظات خاصة بويندوز

  • الحد الأقصى للمدة الزمنية المحددة باستعمال المعامل time هو 5000 ميلي ثانية (5 ثوانٍ)، والحد الأدنى هو 1 ميلي ثانية
navigator.vibrate (8000)  // 5000 سيتم تحويلها إلى

الاهتزاز وفق نمط معين (أندرويد وويندوز فقط)

عند تمرير مصفوفة غير أحادية، فسيهتز الجهاز وفق نمط معين.

navigator.vibrate(pattern);

يمثِّل المعامل pattern مصفوفة من الأعداد تحوي تسلسلًا من الفترات الزمنية (بالميلي ثانية) لتشغيل الاهتزاز أو إيقافه. اطلع على المثال التالي الذي يشرح ما سبق:

// الاهتزاز لثانية واحدة
// ثم الانتظار ثانية واحدة
// ثم الاهتزاز ثلاث ثوانٍ
// ثم الانتظار ثانية واحدة
// ثم الاهتزاز لخمس ثوانٍ
navigator.vibrate([1000, 1000, 3000, 1000, 5000]);

إلغاء الاهتزاز (غير مدعوم في منصة iOS)

للإلغاء الفوري لأيّ اهتزاز حاليً، مرر الصفر، أو مصفوفة تحتوي على الصفر فقط، أو مصفوفة فارغة إلى التابع vibrate.

navigator.vibrate(0)
// أو
navigator.vibrate([])
// أو
navigator.vibrate([0])

سيؤدي تمرير القيمة 0، أو مصفوفة فارغة، أو مصفوفة أحادية تحتوي 0 إلى إلغاء الاهتزازات.

انظر أيضًا

مصادر