LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

如何判断网站客户端是手机还是电脑?

admin
2014年4月7日 11:1 本文热度 5259
如今智能手机越来越普及,用户通过移动终端上网的频率也越来越高,用户的电脑上网习惯也随之转移到手机上网。

然而受手机屏幕以及相关手机浏览器的影响,很多网站在手机端的表现差强人意,所以我们会考虑设计WAP版。当然常用的办法是告知用户WAP入口地址,但这不能从无缝转移的角度来解决问题。所以我们会考虑到判断当前客户端的情况来进行有选择的推送网站版面。
标关键。搜索诸多文章都推荐了使用“User-Agent”进行嗅探。“User Agent中文名为用户代理,简称 UA,它是一个特殊字符串头,使得服务器能够识别客户使用的操作系统及版本、CPU 类型、浏览器及版本、浏览器渲染引擎、浏览器语言、浏览器插件等。”






<%request.ServerVariables("HTTP_USER_AGENT")%>
<?$_SERVER['HTTP_USER_AGENT']?>


获 得的第一参数可以看到电脑显示为compatible,iphone显示为iphone,cpu iphone OS;摩托罗拉M2525显示为Linux,Android MB525 Build。而诸如诺基亚6300则不显示任何信息,当然,因为任何电脑都会有HTTP_USER_AGENT信息,如果值为空也可以判断为手机。

所以简单办法是获取所有手机端的User-Agent信息入库,以备对客户端的校验。

已检测成功的ASP版






<%
set regex = new regexp
regex.ignorecase = true
regex.global = true
regex.pattern = "mini 9.5|vx1000|lge |m800|e860|u940|ux840|compal|wireless| mobi|ahong|lg380|lgku|lgu900|lg210|lg47|lg920|lg840|lg370|sam-r|mg50|s55|g83|t66|vx400|mk99|d615|d763|el370|sl900|mp500|samu3|samu4|vx10|xda_|samu5|samu6|samu7|samu9|a615|b832|m881|s920|n210|s700|c-810|_h797|mob-x|sk16d|848b|mowser|s580|r800|471x|v120|rim8|c500foma:|160x|x160|480x|x640|t503|w839|i250|sprint|w398samr810|m5252|c7100|mt126|x225|s5330|s820|htil-g1|fly v71|s302|-x113|novarra|k610i|-three|8325rc|8352rc|sanyo|vx54|c888|nx250|n120|mtk |c5588|s710|t880|c5005|i;458x|p404i|s210|c5100|teleca|s940|c500|s590|foma|samsu|vx8|vx9|a1000|_mms|myx|a700|gu1100|bc831|e300|ems100|me701|me702m-three|sd588|s800|8325rc|ac831|mw200|brew |d88|htc\/|htc_touch|355x|m50|km100|d736|p-9521|telco|sl74|ktouch|m4u\/|me702|8325rc|kddi|phone|lg |sonyericsson|samsung|240x|x320vx10|nokia|sony cmd|motorola|up.browser|up.link|mmp|symbian|smartphone|midp|wap|vodafone|o2|pocket|kindle|mobile|psp|treo|iris|3g_t|windows ce|opera mobi|windows ce; smartphone;|windows ce; iemobile|ipod|iphone|android|opera mini|blackberry|palm os|palm|hiptop|avantgo|fennec|plucker|xiino|blazer|elaine|iris|3g_t|windows ce|opera mobi|windows ce; smartphone;|windows ce; iemobile"

agent = request.ServerVariables("HTTP_USER_AGENT")
if agent <> "" then
if regex.test(agent) then
response.redirect("WAP网址")
end If
Else
response.redirect("未能获取HTTP_USER_AGENT值,同样跳转到WAP网址")
end if
%>



未监测的PHP版






function is_wap(){
$ua = strtolower($_SERVER['HTTP_USER_AGENT']);
$uachar = "/(nokia|sony|ericsson|mot|samsung|sgh|lg|sie|philips|panasonic|alcatel|lenovo|cldc|midp|wap|mobile)/i";
if(($ua == '' || preg_match($uachar, $ua))&& !strpos(strtolower($_SERVER['REQUEST_URI']),'wap')){
return true;
}else{
return false;
}
}



以上的ASP段代码检测在诺基亚、苹果、三星、摩托罗拉、HTC、黑莓及部分安卓山寨机上测试访问均自动跳转至WAP站点。

后来考虑到ipad端因为屏幕已经够大,正常WEB浏览也无大碍,所以可以考虑不跳转到WAP站的思路总结出:

判断客户端是电脑还是手机的目的是为了让用户能看到适合的屏幕内容,那么我们为什么不来判断客户端的分辨率进行有选择的跳转呢?

所以,最终考虑分辨率小于480的终端均跳转到WAP页面。







<script type="text/javascript">
//document.write(window.screen.width+"*"+window.screen.height);
if (window.screen.width<=480){
top.location='WAP网址';
}
</script>



另外发现,UC解析彩版页面效果很差,图片全部被渲染过的,看来只能定制纯文字版的WAP页了。

该文章在 2014/4/7 11:01:13 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2024 ClickSun All Rights Reserved