जावास्क्रिप्ट / jQuery के माध्यम से Android फोन का पता लगाएं


122

मुझे कैसे पता चलेगा कि उपयोग में आने वाला उपकरण मोबाइल वेबसाइट के लिए एक Android है?

मुझे एंड्रॉइड प्लेटफ़ॉर्म पर कुछ सीएसएस विशेषताओं को लागू करने की आवश्यकता है।

धन्यवाद

जवाबों:


223

उस पर एक नज़र: http://davidwalsh.name/detect-android

जावास्क्रिप्ट:

var ua = navigator.userAgent.toLowerCase();
var isAndroid = ua.indexOf("android") > -1; //&& ua.indexOf("mobile");
if(isAndroid) {
  // Do something!
  // Redirect to Android-site?
  window.location = 'http://android.davidwalsh.name';
}

पीएचपी:

$ua = strtolower($_SERVER['HTTP_USER_AGENT']);
if(stripos($ua,'android') !== false) { // && stripos($ua,'mobile') !== false) {
  header('Location: http://android.davidwalsh.name');
  exit();
}

संपादित करें : जैसा कि कुछ टिप्पणियों में बताया गया है, यह 99% मामलों में काम करेगा, लेकिन कुछ किनारे मामलों को कवर नहीं किया गया है। यदि आपको JS में अधिक उन्नत और बुलेटप्रूफ समाधान की आवश्यकता है, तो आपको platform.js का उपयोग करना चाहिए: https://github.com/bestiejs/platform.js


5
Android टेबलेट की जांच करना न भूलें: googlewebmastercentral.blogspot.com/2011/03/…

2
यह ध्यान देने योग्य है कि यह हमेशा एंड्रॉइड डिवाइस के लिए काम नहीं करता है, उदाहरण के लिए, उपयोगकर्ता एजेंट जो किंडल फायर एचडी डिवाइस द्वारा रिपोर्ट किए जाते हैं, उनमें 'एंड्रॉइड' शब्द बिल्कुल भी नहीं होता है।
डीजेबीपी

3
Navigator.userAgent दृष्टिकोण सैमसंग गैलेक्सी उपकरणों पर काम नहीं करता है। ब्राउज़र युक्ति में कोई 'Android' नहीं है।
AsafK

2
जेएस समाधान की पहली दो पंक्तियों को सरल किया जा सकता है:var isAndroid = /Android/i.test(navigator.userAgent)
डेव कू

4
आपका समाधान काम नहीं करता है। यहाँ एक Nokia Lumia यूजर एजेंट है। और अंदाज लगाइये क्या? यह एंड्रॉइड के रूप में मेल खाता है:Mozilla/5.0 (Mobile; Windows Phone 8.1; Android 4.0; ARM; Trident/7.0; Touch; rv:11.0; IEMobile/11.0; NOKIA; Lumia 625; Orange) like iPhone OS 7_0_3 Mac OS X AppleWebKit/537 (KHTML, like Gecko) Mobile Safari/537
सैम जेसन ब्रैडॉक

47

कैसे इस एक लाइनर के बारे में?

var isAndroid = /(android)/i.test(navigator.userAgent);

iसंशोधक केस-संवेदी मिलान प्रदर्शन करने के लिए प्रयोग किया जाता है।


कॉर्डोवा AdMob परीक्षण परियोजना से ली गई तकनीक: https://github.com/floatinghotpot/cordova-admob-pro/wiki/00.-How-To-Use-with-PhoneGap-Bild


2

मुझे लगता है कि मिशल का जवाब सबसे अच्छा है, लेकिन हम इसे एक कदम आगे ले जा सकते हैं और मूल प्रश्न के अनुसार एंड्रॉइड सीएसएस को गतिशील रूप से लोड कर सकते हैं:

var isAndroid = /(android)/i.test(navigator.userAgent);
if (isAndroid) {
    var css = document.createElement("link");
    css.setAttribute("rel", "stylesheet");
    css.setAttribute("type", "text/css");
    css.setAttribute("href", "/css/android.css");
    document.body.appendChild(css);
}

1
आप मीडिया के प्रश्नों का उपयोग करते हुए ऐसा क्यों करना चाहेंगे? जेएस डिवाइस डिटेक्शन केवल एन्हांसमेंट के लिए होना चाहिए, जैसे कि आपके ऐप को इंस्टॉल करने के लिए निमंत्रण जोड़ना। पेज रेंडरिंग को कभी भी इस पर भरोसा नहीं करना चाहिए क्योंकि आपके पास प्रदर्शन के मुद्दे और एक भयानक प्रयोज्य अनुभव होगा।
२३:१३ पर कैमिलाकोवेरिन

1
@camilokawerin आपकी प्रतिक्रिया लेखक को निर्देशित की जानी चाहिए। मैं बस उसके सवाल का जवाब दे रहा था। हालांकि ऐसे मामले हैं जहां आप प्लेटफ़ॉर्म विशिष्ट सीएसएस पसंद करेंगे। उदाहरण के लिए, यदि आप डिवाइस से मिलान करने के लिए इंटरफ़ेस की दृश्य शैली चाहते हैं।
drlarsen

2
;(function() {
    var redirect = false
    if (navigator.userAgent.match(/iPhone/i)) {
        redirect = true
    }
    if (navigator.userAgent.match(/iPod/i)) {
        redirect = true
    }
    var isAndroid = /(android)/i.test(navigator.userAgent)
    var isMobile = /(mobile)/i.test(navigator.userAgent)
    if (isAndroid && isMobile) {
        redirect = true
    }
    if (redirect) {
        window.location.replace('jQueryMobileSite')
    }
})()

-3

js संस्करण, iPad भी पकड़ता है:

var is_mobile = /mobile|android/i.test (navigator.userAgent);

3
काम नहीं करता क्योंकि यह कई उपकरणों को पकड़ता है, न कि केवल एंड्रॉइड के रूप में प्रश्न की आवश्यकता होती है।
NickG

1
इस तरह से कम से कम कुछ का उपयोग करें: /android.*(?=mobile)/i.test(navigator.userbgent); Android फोन का पता लगाने के लिए। लेकिन इस रेगेक्स में "महंगी" मात्राएं हैं, इसलिए 2 अलग-अलग परीक्षणों के साथ फिलिप का उत्तर अधिक उपयुक्त हो सकता है।
वादिम पी।
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.