मैं यह जांचने का एक तरीका ढूंढ रहा हूं कि कोई डिवाइस डिवाइसऑरिएंटेशन इवेंट या डिवाइसमोशनएवेंट का समर्थन करता है या नहीं। अधिक सटीक होने के लिए मुझे यह जानना नहीं है कि डिवाइस में वास्तव में एक्सेलेरोमीटर है या नहीं।डिवाइस गति/अभिविन्यास समर्थन का पता लगाना?
दुर्भाग्य window.DeviceMotionEvent
और window.ondevicemotion
क्रमशः window.DeviceOrientationEvent
और window.ondeviceorientation
मौजूद है, हालांकि डिवाइस - मैकबुक रेटिना - ऐक्सेलरोमीटर जरूरत नहीं है।
यह मुझे स्पष्ट है कि अगर ईवेंट को कभी नहीं निकाल दिया जाता है, तो इवेंटलिस्टर का कॉलबैक-फ़ंक्शन भी कभी नहीं चलाएगा। लेकिन मेरे मामले में, मेरे कार्यक्रम को यह जानने की जरूरत है कि डिवाइस में एक्सेलेरोमीटर है, क्योंकि उपयोगकर्ता को एक्सेलेरोमीटर नहीं होने पर अधिसूचना प्राप्त करनी चाहिए।
दुर्भाग्यवश इस पोस्ट के उत्तर मेरी समस्या के लिए काम नहीं करते थे।
मुझे नहीं पता कि 'ondevicemotion' घटना कितनी सटीक है, लेकिन यह घटना सुनने के लिए स्वीकार्य होगा, और यदि कोई ऐसा ईवेंट प्राप्त नहीं होता है, तो 5 सेकंड कहें, तो डिवाइस या तो आराम कर रहा है लोहे की पकड़ वाले किसी व्यक्ति द्वारा आयोजित टेबल, या एक्सेलेरोमीटर नहीं है? –
आप सही हैं। यह एक संभव तरीका है, मैंने भी सोचा। इस समाधान में समस्या है, मुझे इस चेक के जवाब के लिए कुछ समय इंतजार करना है (केवल थोड़ी सी, क्योंकि 'devicemotion' अक्सर आग लगती है)। मेरे मामले में मुझे वास्तव में शुरुआत से पता होना चाहिए कि डिवाइस में एक्सेलेरोमीटर है, क्योंकि डिवाइस को किसी अन्य पृष्ठ पर अग्रेषित किया गया है यदि डिवाइस में कोई एक्सेलेरोमीटर नहीं है ... –