إضافة اتجاه الشاشة في كوردوفا

من موسوعة حسوب
اذهب إلى: تصفح، ابحث

تُستخدَم إضافة اتجاه الشاشة (cordova-plugin-screen-orientation) للتحكم باتجاه الشاشة (عبر ضبطها إلى اتجاه محدَّد أو منع تغيير الاتجاه) بشكل موحَّد في المنصات iOS وأندرويد و windows-uwp. تعتمد هذه الإضافة على الواجهة البرمجية لاتجاه الشاشة، حتى تتطابق مع المواصفات الحالية.

تضيف هذه الإضافة العناصر التالية إلى كائن الشاشة window.screen:

// منع تغيير اتجاه الشاشة
.orientation.lock('portrait')
// السماح بتغيير اتجاه الشاشة
.orientation.unlock()
// الاتجاه الحالي
.orientation

التثبيت

يمكن تثبيت هذه الإضافة عبر الأمر التالي:
cordova plugin add cordova-plugin-screen-orientation‎

الاتجاهات المدعومة

portrait-primary

يمثل هذا الاتجاه الوضع العمودي الأولي (primary portrait mode).

portrait-secondary

الوضع العمودي الثانوي (secondary portrait mode).

landscape-primary

الوضع الأفقي الأولي (primary landscape mode).

landscape-secondary

الوضع الأفقي الثانوي (secondary landscape mode).

portrait

الوضع العمودي الأولي أو الثانوي (sensor).

landscape

الوضع الأفقي الأولي أو الثانوي (sensor).

any

تحرير التوجيه، بحيث تُدعم جميع الاتجاهات.

طريقة الاستخدام

إليك المثال التالي الذي يشرح كيفية استخدام الاضافة بشكل مبسَّط:
// تعين الاتجاه إلى أحد الوضعين الأفقيين
screen.orientation.lock('landscape');
// إتاحة إدارة الاتجاه من قِبل المستخدم
screen.orientation.unlock();
// الحصول على الاتجاه الحالي
console.log('Orientation is ' + screen.orientation.type);

الأحداث

ستُطلق كلٌّ من منصتي أندرويد و iOS الحدث orientationchange من الكائن window. في هذا الإصدار من الإضافة، استخدم الكائن window إن كنت تريد طريقة للتنبيه بتغيير الاتجاه. اطلع على الشيفرة التالية مثلًا:
window.addEventListener("orientationchange", function(){
    console.log(screen.orientation.type); // مثلا الوضع العمودي 
});
في الشيفرة التالية، سنُضيف مُنصتًا (listener) للحدث change في الكائن screen.orientation:
screen.orientation.addEventListener('change', function(){
    console.log(screen.orientation.type); // مثلا الوضع العمودي 
});
    // أو
screen.orientation.onchange = function(){console.log(screen.orientation.type);
};

ملاحظات حول أندرويد

لن تُحدَّث الخاصية screen.orientation عندما يُدار الهاتف 180 درجة.

ملاحظات حول منصة Windows UWP

لن تَعرض تطبيقات متجر ويندوز (windows-uwp) تغييرات الاتجاه إلّا إن كان الجهاز مُزودًا بمقياسٍ للتسارع (accelerometer). ستُحفَظ الحالة الداخلية للكائن orientation، ولكن لن يتم تدوير الشاشة فعليًا ما لم يكن الجهاز يدعم ذلك.

سجِل التغييرات

راجع الملف RELEASENOTES.md المُولّد آليًا لمطالعة تاريخ التغييرات على هذه الإضافة.

الإصدار التغييرات
2.0.0 واجهة جافاسكريبت مُوحّدة لأندرويد وويندوز و iOS
1.4.2 #101 يجعل منصة iOS  تُدير الاتجاه عند استدعاء lockOrientation 
1.4.1 #89 سد ثغرة في كوردوفا
1.4.0
  • إضافة دعم ويندوز 8.1
  • #54 مهمة فرعية (thread) خلفية لمنصة ios
  • #64 تصحيح خطأ في تسمية الاتجاه
  • إضافة الوضع العمودي المقلوب (portrait upside down) لاتجاهات منصة iOS الافتراضية
1.3.5-6 أُضيف في هذا الإصدار إضافةٌ إلى npm
1.3.4 تحديث ملف Readme 
1.3.3 #53 دعم WP8
1.3.2 #33 تأخير الكتل (Delay Block) في منصة iOS8 
1.3.0 #23 دعم موقع flicker على منصة iOS8 
1.2.0-1.2.1 #19  عطبٌ في منصة iOS8 

انظر أيضًا

مصادر