6

मैं यह जांचने का एक तरीका ढूंढ रहा हूं कि कोई डिवाइस डिवाइसऑरिएंटेशन इवेंट या डिवाइसमोशनएवेंट का समर्थन करता है या नहीं। अधिक सटीक होने के लिए मुझे यह जानना नहीं है कि डिवाइस में वास्तव में एक्सेलेरोमीटर है या नहीं।डिवाइस गति/अभिविन्यास समर्थन का पता लगाना?

दुर्भाग्य window.DeviceMotionEvent और window.ondevicemotion क्रमशः window.DeviceOrientationEvent और window.ondeviceorientation मौजूद है, हालांकि डिवाइस - मैकबुक रेटिना - ऐक्सेलरोमीटर जरूरत नहीं है।

यह मुझे स्पष्ट है कि अगर ईवेंट को कभी नहीं निकाल दिया जाता है, तो इवेंटलिस्टर का कॉलबैक-फ़ंक्शन भी कभी नहीं चलाएगा। लेकिन मेरे मामले में, मेरे कार्यक्रम को यह जानने की जरूरत है कि डिवाइस में एक्सेलेरोमीटर है, क्योंकि उपयोगकर्ता को एक्सेलेरोमीटर नहीं होने पर अधिसूचना प्राप्त करनी चाहिए।

दुर्भाग्यवश इस पोस्ट के उत्तर मेरी समस्या के लिए काम नहीं करते थे।

+0

मुझे नहीं पता कि 'ondevicemotion' घटना कितनी सटीक है, लेकिन यह घटना सुनने के लिए स्वीकार्य होगा, और यदि कोई ऐसा ईवेंट प्राप्त नहीं होता है, तो 5 सेकंड कहें, तो डिवाइस या तो आराम कर रहा है लोहे की पकड़ वाले किसी व्यक्ति द्वारा आयोजित टेबल, या एक्सेलेरोमीटर नहीं है? –

+0

आप सही हैं। यह एक संभव तरीका है, मैंने भी सोचा। इस समाधान में समस्या है, मुझे इस चेक के जवाब के लिए कुछ समय इंतजार करना है (केवल थोड़ी सी, क्योंकि 'devicemotion' अक्सर आग लगती है)। मेरे मामले में मुझे वास्तव में शुरुआत से पता होना चाहिए कि डिवाइस में एक्सेलेरोमीटर है, क्योंकि डिवाइस को किसी अन्य पृष्ठ पर अग्रेषित किया गया है यदि डिवाइस में कोई एक्सेलेरोमीटर नहीं है ... –

उत्तर

2

अपने कार्यक्रम को देखते हुए, मैं तुम्हें इसके निष्पादन अवरुद्ध कर रहे हैं, अगर वहाँ कोई है संभालने हूँ समारोह के लिए एक accelerometer कार्यक्षमता की जरूरत है।

तो आपका प्रोग्राम डिफ़ॉल्ट रूप से 'ब्लॉक' कर सकता है, और एक ही डिवाइसमोशनएवेंट को सुन सकता है जो आपके पूरे कार्यक्रम को आरंभ करेगा, जो आखिरकार window.ondevicemotion पर बाध्य होगा। इस तरह आपको एक सेटटाइमआउट के साथ निष्पादन को अवरुद्ध करने की आवश्यकता नहीं है; खिड़की के भार के बाद एक डिवाइसमोशनवेन्ट को जल्दी से निकाल दिया जाएगा।

+0

बहुत अच्छा बिंदु @Prusprus। मुझे लगता है कि यह उस समस्या के लिए सबसे अच्छा समाधान है ... –

संबंधित मुद्दे