2013-03-12 9 views
11

मैं अपनी वेबसाइट पर एक अधिसूचना बार दिखा रहा हूं, और स्पष्ट रूप से, यह मोबाइल डिवाइस पर अच्छा काम नहीं करता है। मैं केवल डेस्कटॉप उपयोगकर्ताओं के लिए बार दिखाना चाहता हूं।यह निर्धारित करने का सबसे आसान तरीका है कि उपयोगकर्ता मोबाइल डिवाइस पर है

यह निर्धारित करने का सबसे आसान तरीका क्या है कि उपयोगकर्ता डेस्कटॉप पर या मोबाइल पर है या नहीं? हालांकि आप आसानी से काम कर सकता है CSS3 media queries

यहाँ एक उदाहरण है कि iPhone, Android और ब्लैकबेरी की जांच करता है

+4

मुझे लगता है कि आप मीडिया के प्रश्नों का उपयोग करना चाहिए वास्तविक क्षमता के बजाय उपयोगकर्ता-एजेंट का निर्धारण करने की अपेक्षा की क्षमता निर्धारित करने के लिए। –

+1

वास्तव में कोई नहीं है। आपको पता लगाना चाहिए कि क्यों * यह काम नहीं करता है (मोबाइल फोन कौन सी सुविधा गायब है) और यह निर्धारित करने के लिए फीचर डिटेक्शन और मीडिया प्रश्नों का उपयोग करें कि यह प्रदर्शित होना चाहिए या नहीं। मोबाइल बनाम डेस्कटॉप का पता लगाने के बजाय – Chad

+0

, मुझे लगता है कि, आपके परिदृश्य में, यह स्क्रीन रिज़ॉल्यूशन का पता लगाने के लिए और अधिक समझ में आता है। – lbstr

उत्तर

6

चेक जावास्क्रिप्ट, jQuery आदि

+0

के बजाय सभी मैचों को लौटता है लिंक से प्रदान किया गया कोड एएसपीनेट वेबसाइट में मेरे लिए पूरी तरह से काम करता है। –

6

उपयोगकर्ता एजेंट की जांच, "सबसे आसान" है; आप आसानी से अन्य मोबाइल ब्राउज़र जोड़ सकते हैं।

var is_mobile = !!navigator.userAgent.match(/iphone|android|blackberry/ig) || false; 
+0

वैसे मैंने डाउनवोट नहीं किया (ऐसा लगता है कि अब कोई भी नहीं हुआ ...) लेकिन आपकी नियमित अभिव्यक्ति थोड़ी सी स्पैस है। – Pointy

+0

काफी मेला, मैं सभी मोबाइल ब्राउज़र को कवर करने की कोशिश नहीं कर रहा था, बस यह उदाहरण प्रदान कर रहा हूं कि यह कैसे किया जा सकता है। मुझे लगता है कि मुझे यह कहना चाहिए था। –

+1

@Pointy बहुत। उदाहरण के लिए विंडोज फोन के लिए कोशिश नहीं की। हो सकता है कि मीडिया प्रश्न सबसे अच्छा है क्योंकि प्रत्येक ब्राउज़र अब इसे लागू करता है। –

7

के लिए इस http://detectmobilebrowsers.com/

कार्य मैं लगता है कि यह सुविधा पहचान का उपयोग करने के लिए। यह पता लगाने के लिए कि यह टच डिवाइस है या नहीं, Modernizr का उपयोग करें। आप की तरह कर सकते हैं:

var mousedown = 'mousedown'; 

if (Modernizr.touch) { 
    mousedown = 'touchstart'; 
} 

$('.foo').on(mousedown, handleMouseDown); 

और फिर स्क्रीन की चौड़ाई से निपटने के लिए सीएसएस मीडिया के प्रश्नों का उपयोग करें (और यह भी जावास्क्रिप्ट के साथ स्क्रीन चौड़ाई का पता लगाने के लिए आसान है)। इस तरह आप बड़ी स्क्रीन के साथ स्पर्श उपकरणों को सही तरीके से संभाल सकते हैं, या छोटी स्क्रीन वाले गैर-स्पर्श डिवाइस।

+2

...और आप सीएसएस के साथ तत्वों को छुपा/दिखा सकते हैं/संशोधित कर सकते हैं क्योंकि Modernizr स्पर्श उपकरणों के लिए '' तत्व में कक्षा "स्पर्श" जोड़ता है। इस प्रकार, '। टच # नोटिफिकेशनबार {प्रदर्शन: कोई नहीं; } ' – Pointy

0

यदि आप modernizr का उपयोग करते हैं। तत्व में "नो-टच" कक्षा जोड़ा जाएगा। आप डिफ़ॉल्ट रूप से बार को छुपा सकते हैं और "नो-टच" कक्षा मौजूद होने पर बार दिखाने के लिए एक सीएसएस नियम जोड़ सकते हैं। उदाहरण:

डिफ़ॉल्ट:

.bar{display:none;}

डेस्कटॉप:

.no-touch .bar{display:block;} 
+1

जो अब इष्टतम नहीं हो सकता है क्योंकि ऐसे स्पर्श डिवाइस हैं जो स्पष्ट रूप से मोबाइल नहीं हैं -> सतह समर्थक देखें (उचित होने के लिए यह एक टैबलेट हो सकता है जो मोबाइल है), लेनोवो जैसे लैपटॉप स्पर्श करें आदि। मुझे यकीन है कि स्पर्श उपकरणों का एक नया नया मेजबान आ जाएगा – Daemedeor

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

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