[英]How to Use userAgent to detect mobile device
Can anyone help me with this. 谁能帮我这个。
I would like to detect device such as Iphone, BB, andriod and browser to apply their specific css to make it liquefied or adjust to their resolution. 我想检测诸如Iphone,BB,andriod和浏览器之类的设备,以应用它们的特定css使其液化或调整到它们的分辨率。
Does andriod and Iphone have difference resolution issue or css problem when it comes to mobile browser because i plan to use same css for those 2 because i know they are using the same browser safari as default. Andriod和Iphone在移动浏览器方面有不同的分辨率问题或css问题,因为我打算为那些2使用相同的css,因为我知道他们使用相同的浏览器safari作为默认。
Here is an example in javascript: 以下是javascript中的示例:
var isMobile = navigator.userAgent.match(/(iPhone|iPod|iPad|Android|BlackBerry)/);
if(isMobile) {
// User-Agent is IPhone, IPod, IPad, Android or BlackBerry
}
To check for a specific User-Agent string you can do: 要检查特定的User-Agent字符串,您可以执行以下操作:
if(navigator.userAgent.match(/iPhone/)) {
// The User-Agent is iPhone
}
Try to use http://www.php.net/get_browser and check for isMobileDevice
field. 尝试使用http://www.php.net/get_browser并检查
isMobileDevice
字段。 It might help only, of course, if the path to browscap.ini
is set up in php.ini. 当然,如果在php.ini中设置
browscap.ini
的路径,它可能只有帮助。 If not, you can use php classes like https://github.com/garetjax/phpbrowscap 如果没有,你可以使用像https://github.com/garetjax/phpbrowscap这样的php类
<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.
Here is the code for the mobile device detection. 这是移动设备检测的代码。
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
}
Hope this will help you. 希望这会帮助你。
I use this: 我用这个:
$mobile= stripos( $_SERVER['HTTP_USER_AGENT'], 'mob');
It works almost every time. 它几乎每次都有效。
Javascript 使用Javascript
var mobile= navigator.userAgent.toLowerCase().indexOf( 'mob');
-1 if not mobile; -1如果不移动; any other value if mobile
移动时的任何其他价值
<?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');
?>
take a look here : http://www.zytrax.com/tech/web/mobile_ids.html and here : http://www.mobile-phone-specs.com/user-agent-browser/0/ 看看这里: http : //www.zytrax.com/tech/web/mobile_ids.html和这里: http : //www.mobile-phone-specs.com/user-agent-browser/0/
There are lists of almost all user agent strings for you. 几乎所有用户代理字符串列表都适合您。 .
。
You can use CSS Media Queries to identify the different devices (actually the different device features like device-width, dpi, etc) 您可以使用CSS Media Queries来识别不同的设备(实际上是不同的设备功能,如设备宽度,dpi等)
For the CSS, you can have different options like having separate CSS for each type of device OR having a fluid design which would mean having the same CSS scale for different device sizes. 对于CSS,您可以有不同的选项,例如为每种类型的设备使用单独的CSS或具有流体设计,这意味着对于不同的设备大小具有相同的CSS比例。 The 2nd approach is slightly complex to design, but is much more flexible from new devices that may come up in future..
第二种方法设计稍微复杂一些,但从未来可能出现的新设备中可以灵活得多。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.