.NET

2011-08-19 11 views
16

में मोबाइल ब्राउज़र डिवाइस का पता लगाने के लिए मैं बस वेबफॉर्म में लिखी गई डेस्कटॉप वेबसाइट का अपना पहला मोबाइल संस्करण बनाना शुरू कर रहा हूं।.NET

मेरा वर्तमान प्रश्न मोबाइल डिवाइस/ब्राउज़र पहचान के साथ करना है।

जो मैं निर्धारित करने की कोशिश कर रहा हूं वह है ए) यदि आपका डिवाइस मोबाइल है b) क्या ओएस (एंड्रॉइड/आईओएस/आदि) के मामले में मुझे ओएस और सी के आधार पर कुछ अलग तरीके से संभालने की आवश्यकता है) स्क्रीन का आकार क्या है विभिन्न स्टाइलशीट लोड करना)

+0

कोई जवाब नहीं? मेरे पास एक ही सवाल है ... आप समाधान के रूप में क्या तय करते थे? –

+1

इस प्रश्न/उत्तर पर एक नज़र डालें: http://stackoverflow.com/questions/9587111/mobile-site-detection-server-side-vs-client-side – avs099

+0

'हैंडसेट डिटेक्शन' मोबाइल पहचान पुस्तकालय http://www.handsetdetection.com
आप निम्न लिंक पर जाकर '.NET हैंडसेट पहचान API किट' प्राप्त कर सकते हैं:
http://code.google.com/p/handset-detection-asp-net-api-kit/

उत्तर

4

मुझे जरूरी नहीं लगता कि मैं जो प्रस्ताव दे रहा हूं वह कई मामलों में सबसे अच्छा समाधान है, हालांकि यह आपके समस्या क्षेत्र में वैकल्पिक अंतर्दृष्टि साबित कर सकता है।

प्रति मोबाइल ब्राउज़र का पता लगाने के बजाय, जिसमें ब्राउजर स्नीफिंग के लिए कुछ समानताएं/नुकसान हैं।

इसके बजाय उत्तरदायी डिजाइन का दृष्टिकोण लें। मैं यहाँ उत्तरदायी डिजाइन के विवरण में नहीं जाऊंगा, क्योंकि यह हमें ट्रैक से बाहर ले जा रहा है। हालांकि यह आपको एक दृष्टिकोण प्रदान कर सकता है जो ब्राउज़र के पता लगाने के आधार पर पूरे अनुभव को अनुकूलित करने के बजाय, यह स्क्रीन संकल्प, सीएसएस क्षमताओं, जावास्क्रिप्ट सक्षम आदि आदि के आधार पर अनुभव को अनुकूलित करने की एक उप-विधि विधि है।

उत्तरदायी डिजाइन प्रति तकनीक एक तकनीक नहीं है, लेकिन तकनीकों का एक सेट जो ब्राउज़र (मोबाइल ब्राउज़र) के उपयोग के आधार पर अनुभव को क्रमिक रूप से बढ़ाया जा सकता है।

क्या एक उत्तरदायी तकनीक वास्तव में (या कम से कम यह समझौता नहीं किया जाता है) के बीच बहुत नाटकीय अंतर नहीं है। मोबाइल संस्करण/डेस्कटॉप संस्करण। चूंकि प्रत्येक आम तौर पर अलग अनुभव को प्रदूषित करेगा। एचटीएमएल को मोबाइल संस्करण पर छुपाया जा सकता है, लेकिन पृष्ठभूमि में अभी भी डाउनलोड किया जा सकता है ... लेकिन ये तकनीकें विकसित हो रही हैं उदा। जावास्क्रिप्ट का उपयोग मोबाइल ब्राउज़र पर कम रिज़ॉल्यूशन छवि और एक विस्तृत स्क्रीन मॉनीटर पर एक उच्च रिज़ॉल्यूशन डाउनलोड करने के लिए किया जा सकता है।

लेकिन आप हमेशा साइट के एक पूरी तरह से अलग मोबाइल संस्करण/डेस्कटॉप संस्करण के लिए एक लिंक डाल सकते हैं जिससे उपयोगकर्ता फॉल-बैक के रूप में निर्णय ले सके।

+0

यहां व्याकरण नाज़ी, यह "प्रति से" है, लैटिन "खुद में" http://en.wikipedia.org/wiki/Per_se –

+0

धन्यवाद, बस मेरी कुछ भयानक वर्तनी को संपादित और सही किया गया है! मुझे भीड़ में होना चाहिए। –

12

useragent स्ट्रिंग को देखकर ब्राउज़र के प्रकार का पता लगाना सबसे आसान है। उस स्ट्रिंग में मुख्य शब्द ब्राउज़र का पता लगाने में मदद करेंगे। UserAgentString.com उपयोगकर्ता सामग्री स्ट्रिंग की पूरी सूची रखता है, लेकिन मुख्य चीज़ जो आपको देखने की ज़रूरत है केवल कुछ ही कीवर्ड हैं।

उदाहरण के लिए, "ब्लैकबेरी" शब्द केवल ब्लैकबेरी डिवाइस से ब्राउज़ करते समय दिखाई देता है। आईपैड और आईफोन के साथ ही। एंड्रॉइड डिवाइस सभी उपयोगकर्ता सामग्री स्ट्रिंग में "एंड्रॉइड" दिखाते हैं, लेकिन वे फोन के लिए कीवर्ड "मोबाइल" को शामिल करके टैबलेट और फोन के बीच अंतर करते हैं।

यहाँ कैसे हम अपने मोबाइल आवेदन में डेस्कटॉप, फ़ोन और टेबलेट फ़ोन का पता लगाने है:

public enum DeviceType 
    { 
     Desktop, 
     Tablet, 
     Phone 
    } 

    public static DeviceType UserAgentToDeviceType(string userAgent) 
    { 
     if (userAgent.ToLowerInvariant().Contains("blackberry")) 
      return DeviceType.Phone; 

     if (userAgent.ToLowerInvariant().Contains("iphone")) 
      return DeviceType.Phone; 

     if (userAgent.ToLowerInvariant().Contains("ipad")) 
      return DeviceType.Tablet; 

     if (userAgent.ToLowerInvariant().Contains("android")) 
     { 
      if (userAgent.ToLowerInvariant().Contains("mobile")) 
       return DeviceType.Phone; 
      else 
       return DeviceType.Tablet; 
     } 

     return DeviceType.Desktop; 
    } 

आप jQuery Mobile की तरह कुछ का उपयोग कर रहे हैं, तो साइट डिवाइस प्रकार की परवाह किए बिना मोबाइल उपस्थिति के लिए अनुकूलित किया जा जाएगा, और यह होगा विभिन्न उपकरणों पर जावास्क्रिप्ट इंजन के बीच मतभेदों को संभालें।

1

WURFL इसके लिए एक महान संसाधन है। आप कॉन्फ़िगर कर सकते हैं कि आपको किन मूल्यों की आवश्यकता है (इसके सभी तर्क लेने की आवश्यकता नहीं है)। मुझे लगता है कि आप अपने खुद के समाधान-

1) बनाने के लिए आप अपनी आवश्यकताओं 3) का प्रयोग करें एक्सएमएल रीडर के अनुसार WURFL एक्सएमएल 2) शॉर्टलिस्ट तर्क ले अपने एक्सएमएल पढ़ सकते हैं और अपने डेटाबेस में मूल्यों डाल करने के लिए कर सकते हैं चाहते हैं।

इस तरह आप अपना स्वयं का समाधान प्राप्त कर सकते हैं। (हालांकि एक मुद्दा यह है कि WURFL पर बाद में पंजीकृत नए डिवाइस स्वचालित रूप से अपडेट नहीं किए जाएंगे, इसलिए आपको बाद में इसे अपडेट करना होगा)