2012-02-16 13 views
7

क्या कोई मेरी मदद कर सकता है।मोबाइल डिवाइस का पता लगाने के लिए userAgent का उपयोग कैसे करें

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

क्या एंड्रॉइड और आईफोन में मोबाइल ब्राउज़र की बात आने पर अंतर रिज़ॉल्यूशन समस्या या सीएसएस समस्या है क्योंकि मैं उन 2 के लिए एक ही सीएसएस का उपयोग करने की योजना बना रहा हूं क्योंकि मुझे पता है कि वे एक ही ब्राउज़र सफारी डिफ़ॉल्ट रूप से उपयोग कर रहे हैं।

+0

मुझे लगता है कि आपके पास संकल्प समस्याएं हैं, तो आपको प्रत्येक डिवाइस पर 100% आने की आवश्यकता होगी। –

+0

याहू मेरी साइट पर चौड़ाई और ऊंचाई पर% का उपयोग कर रहा हूँ। लेकिन मैं मोबाइल पर साइट को अलग दिखाना चाहता हूं। फेसबुक की तरह ही इसका मोबाइल संस्करण – Bert

उत्तर

4

प्रयास करें। यह केवल तभी मदद कर सकता है, अगर browscap.ini का पथ php.ini में स्थापित है। यदि नहीं, तो आप की तरह https://github.com/garetjax/phpbrowscap

+0

ओह शांत यह PHP में है। कोशिश की और यह काम करता है लेकिन एक जांच यह है कि यदि मोबाइल में उन्होंने एक अलग ब्राउज़र स्थापित किया है। मैं डिवाइस में विशिष्ट होना चाहता हूं ताकि इसे – Bert

+0

@ बर्ट व्यवस्थित किया जा सके। यह प्रत्येक अनुरोध के साथ सबमिट किए गए उपयोगकर्ता-एजेंट स्ट्रिंग द्वारा ब्राउज़र को चेक करता है। जब ब्राउज़र UA में पहचान नहीं भेजता है तो आप जावास्क्रिप्ट के साथ भी इसका पता नहीं लगा सकते हैं। केवल, शायद, स्क्रीन रिज़ॉल्यूशन को ध्यान में रखते हुए। लेकिन आपको यह जानने की जरूरत नहीं है कि यह किस प्रकार का डिवाइस है, केवल तभी मोबाइल या नहीं। – Cheery

+0

हाँ मैंने कोड की कोशिश की। डिवाइस का पता लगाने के लिए इसका उपयोग करते हुए मैं एक परिवर्तनीय $ css_iphone = "। css" में स्टोर करता हूं, सीएसएस लिंक अलग-अलग डिवाइस पर अनुकूलित होता है। मैं इस – Bert

6

यहाँ जावास्क्रिप्ट में एक उदाहरण है:

var isMobile = navigator.userAgent.match(/(iPhone|iPod|iPad|Android|BlackBerry)/); 

if(isMobile) { 
    // User-Agent is IPhone, IPod, IPad, Android or BlackBerry 
} 

एक विशिष्ट उपयोगकर्ता-एजेंट स्ट्रिंग के लिए जाँच करने के लिए आप कर सकते हैं: http://www.php.net/get_browser का उपयोग करें और isMobileDevice क्षेत्र के लिए जाँच करने

if(navigator.userAgent.match(/iPhone/)) { 
    // The User-Agent is iPhone 
} 
+0

है ओह मुझे कोशिश करें .. तो यह जावास्क्रिप्ट में होगा? अगर (isMobile == 'iPhone') – Bert

+0

@Bert - हां यह जावास्क्रिप्ट है और आप इसे इस तरह जांचते हैं: 'if (isMobile) {// do कुछ यहाँ} '। केवल आईफोन की जांच करने के लिए आप कर सकते हैं: 'अगर (navigator.userAgent ==' आईफोन ') ' – Cyclonecode

+0

याहू मैंने कोशिश की यह काम करता है। मैं document.getElementById ('id') का उपयोग करने का प्रयास करता हूं।classList.add ('वर्ग'); document.getElementById ('id')। ClassList.remove ('class'); परीक्षण के लिए । मैं इसके लिए jquery का उपयोग कर सकते हैं। – Bert

0

php वर्गों का उपयोग कर सकते यहाँ एक बार देख ले: http://www.zytrax.com/tech/web/mobile_ids.html और यहाँ: http://www.mobile-phone-specs.com/user-agent-browser/0/

आप के लिए लगभग सभी उपयोगकर्ता एजेंट स्ट्रिंग की सूची नहीं है। ।

+0

@rkosegi के लिए मीडिया प्रश्नों का भी उपयोग कर रहा हूं .. धन्यवाद, यह मुझे बहुत मदद करता है। – Bert

0

आप सीएसएस मीडिया के प्रश्नों का उपयोग कर सकते विभिन्न उपकरणों

सीएसएस लिए, (जैसे उपकरण-चौड़ाई, डीपीआई, आदि वास्तव में अलग-अलग डिवाइस सुविधाओं) की पहचान करने के लिए, आप प्रत्येक प्रकार के लिए अलग सीएसएस होने की तरह अलग अलग विकल्प हैं कर सकते हैं डिवाइस का या एक द्रव डिजाइन है जिसका अर्थ है कि विभिन्न डिवाइस आकारों के लिए एक ही सीएसएस स्केल होना चाहिए। 2 दृष्टिकोण थोड़ा डिजाइन करने के लिए जटिल है, लेकिन और अधिक नए उपकरणों है कि भविष्य में नज़र आने से लचीला है ..

+0

हाँ 1024x768 और उससे कम के लिए संकल्प के लिए सीएसएस मीडिया प्रश्नों का उपयोग कर रहा हूँ। मैं आईपीएडी या किसी भी 10.1 डिवाइस के साथ कंप्यूटर/लैपटॉप के समान दिखने की सोच रहा हूं। मैं यह भी लागू करूंगा जब मेरे पास प्रत्येक डिवाइस का पता लगाने की स्थिति हो। – Bert

+0

जब आप वास्तविक रूप से सोचते हैं तो यह सबसे अच्छा तरीका है ... मेरा मतलब है कि प्रत्येक डिवाइस के लिए अलग-अलग सीएसएस बनाने के बजाय, हर साल अमृत में आने वाले कई उपकरणों के साथ, आप द्रव/उत्तरदायी डिज़ाइन का उपयोग कर सकते हैं और उस डिवाइस के अनुसार लेआउट स्केल को स्वयं दें जिस पर इसे देखा जाता है .. – testndtv

+0

मैं देखता हूं। आपका बिल्कुल सही डिवाइस के विभिन्न रिज़ॉल्यूशन के कारण जो वेब डेवलपर को सीएसएस फ़ाइल को संपादित करने के लिए कठिन बनाता है ताकि डिवाइस को अनुकूलित करने के लिए भविष्य में उपयोग के लिए द्रव शैली का उपयोग करना बेहतर हो। – Bert

2
<meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;" /> 
<meta name="HandheldFriendly" content="true"/> 
<meta name="MobileOptimized" content="320"/> 
<meta http-equiv="cleartype" content="on" /> 


use this code on your website under <header> tag. 

यहाँ मोबाइल डिवाइस पता लगाने के लिए कोड है।

function isMobile() { 

// Check the server headers to see if they're mobile friendly 
if(isset($_SERVER["HTTP_X_WAP_PROFILE"])) { 
    return true; 
} 

// If the http_accept header supports wap then it's a mobile too 
if(preg_match("/wap\.|\.wap/i",$_SERVER["HTTP_ACCEPT"])) { 
    return true; 
} 

// Still no luck? Let's have a look at the user agent on the browser. If it contains 
// any of the following, it's probably a mobile device. Kappow! 
if(isset($_SERVER["HTTP_USER_AGENT"])){ 
    $user_agents = array("midp", "j2me", "avantg", "docomo", "novarra", "palmos", "palmsource", "240x320", "opwv", "chtml", "pda", "windows\ ce", "mmp\/", "blackberry", "mib\/", "symbian", "wireless", "nokia", "hand", "mobi", "phone", "cdm", "up\.b", "audio", "SIE\-", "SEC\-", "samsung", "HTC", "mot\-", "mitsu", "sagem", "sony", "alcatel", "lg", "erics", "vx", "NEC", "philips", "mmm", "xx", "panasonic", "sharp", "wap", "sch", "rover", "pocket", "benq", "java", "pt", "pg", "vox", "amoi", "bird", "compal", "kg", "voda", "sany", "kdd", "dbt", "sendo", "sgh", "gradi", "jb", "\d\d\di", "moto"); 
    foreach($user_agents as $user_string){ 
     if(preg_match("/".$user_string."/i",$_SERVER["HTTP_USER_AGENT"])) { 
      return true; 
     } 
    } 
} 

// Let's NOT return "mobile" if it's an iPhone, because the iPhone can render normal pages quite well. 
if(preg_match("/iphone/i",$_SERVER["HTTP_USER_AGENT"])) { 
    return false; 
} 

// None of the above? Then it's probably not a mobile device. 
return false; 
} 
    if (isMobile()) { 
    header("location:$mobile"); 
    // if the function returned true, it's a mobile. 
    //echo "mobile"; // delete this line in your code, and uncomment the next line 
// header('Location: http://www.yoursite.mobi/'); // let's redirect the page to the mobile site 

    } 

आशा है कि यह आपकी मदद करेगा।

+0

मैं नेट पर खोज करता हूं और देखा कि व्यूपोर्ट मोबाइल डिवाइस पर लेआउट को नियंत्रित करना है। धन्यवाद यह एक याद है .. – Bert

+7

मुझे वास्तव में 'चलो वापस नहीं आना "मोबाइल पसंद नहीं है अगर यह एक आईफोन है –

-1

मैं का उपयोग करें:

$mobile= stripos($_SERVER['HTTP_USER_AGENT'], 'mob'); 

यह लगभग हर बार काम करता है।

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

var mobile= navigator.userAgent.toLowerCase().indexOf('mob'); 

-1 अगर मोबाइल नहीं; कोई अन्य मूल्य यदि मोबाइल

0
<?php 

$useragent=$_SERVER['HTTP_USER_AGENT']; 

if(preg_match('/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm(os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i',$useragent)||preg_match('/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s)|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp(i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac(|\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt(|\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg(g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v)|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v)|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-|)|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i',substr($useragent,0,4))) 

header('Location: http://detectmobilebrowser.com/mobile'); 

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