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

كيف يمكنني اكتشاف دوران الجهاز بشكل موثوق في متصفح Android باستخدام JavaScript؟

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

How can I Reliably Detect Device Rotation in a Browser on Android with JavaScript?

اكتشاف دوران الجهاز في المتصفح على Android باستخدام JavaScript

تحديات التوافق في اكتشاف الدوران

اكتشاف دوران الجهاز باستخدام JavaScript في يمكن أن يكون المتصفح أكثر صعوبة على هواتف Android مقارنةً بأجهزة iPhone، التي تتمتع بنهج محدد جيدًا. يمكن أن يكون السلوك عبر أجهزة Android غير متسق، مع وجود اختلافات في تسلسل وتكرار الأحداث وتغييرات في القيم مثل screen.width وwindow.orientation.

منهج موثوق لاكتشاف التدوير

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

var previousOrientation = window.orientation;
var checkOrientation = function(){
    if(window.orientation !== previousOrientation){
        previousOrientation = window.orientation;
        // Handle orientation change as needed
    }
};

window.addEventListener("resize", checkOrientation, false);
window.addEventListener("orientationchange", checkOrientation, false);

// (Optional) Poll for orientation changes on Android (180 degree turns)
setInterval(checkOrientation, 2000);

تسلسل الأحداث وتغييرات القيمة

يختلف تسلسل الأحداث والتغييرات في القيم عبر الأجهزة. فيما يلي جدول يلخص النتائج من الأجهزة المختلفة:

الجهاز iPad 2تغيير الحجم، تغيير الاتجاهiPhone 4تغيير الحجم وتغيير الاتجاه90480320هاتف Androidتغيير الاتجاه، تغيير الحجم90320569 Samsung Galaxy Tablet تغيير الاتجاه، تغيير الاتجاه، تغيير الاتجاه، تغيير الحجم، تغيير الاتجاه 90، 90، 90 400683بينما يوفر هذا الأسلوب طريقة موثوقة لاكتشاف دوران الجهاز، فمن المهم الحفاظ عليه مع الأخذ في الاعتبار قيود JavaScript في هذا السياق. على سبيل المثال، قد لا تتغير قيم معينة مثل screen.width دائمًا كما هو متوقع. يوصى أيضًا بتجنب الاعتماد فقط على Screen.width نظرًا لسلوكه غير المتسق عبر أجهزة iOS.
الأحداث التي تم إطلاقها (إلى الوضع الأفقي) الاتجاه innerWidthscreen.width
901024768
اعتبارات إضافية
أحدث البرنامج التعليمي أكثر>

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

Copyright© 2022 湘ICP备2022001581号-3