Clo*_*ign 102 android device-detection
我到处寻找.我们正在使用Motorola Zoom来尝试我们的平板电脑网站测试.问题是Android Useragent是一般的Useragent,平板电脑Android和移动Android之间没有区别.我不想只针对像Xoom Useragent这样的特定设备,因为Android很可能会在不久的将来出现在多个平板设备上.
我们正在使用Umbraco CMS,我们已经考虑使用51Degrees.mobi解决方案,目前这不适合我们的需求.或许在将来.我知道51Degrees和Umbraco的一些人将要进行一些整合到Umbraco,但最终的项目可能不会出现几个月.
因此,为什么我们要检测Android平板电脑的Useragent String,并且不要像现在这样直接访问我们的移动网站.
如果有人知道如何检测和Android平板电脑一般,不是具体的设备将是非常有帮助的.
Com*_*are 111
问题是Android用户代理是一般用户代理,平板电脑Android和移动Android之间没有区别.
这是不正确的.移动Android在User-Agent标头中有"Mobile"字符串.平板电脑Android没有.
小智 20
@Carlos:在他的文章中,Tim Bray推荐这一点(谷歌的另一篇文章也是如此),但不幸的是,它并未被所有平板电脑制造商应用.
...我们建议大型设备制造商从用户代理中删除"移动"...
我见过的大多数Android平板电脑用户代理字符串都使用移动游戏,例如三星Galaxy Tab:
Mozilla的/ 5.0(Linux的; U; Android 2.2的; EN-US; SCH-I800建造/升级Froyo)为AppleWebKit/533.1(KHTML,例如Gecko)版本/ 4.0移动版Safari/533.1
所以目前我正在检查设备名称以检测Android平板电脑.只要市场上只有几款型号,那就没关系,但很快这将是一个丑陋的解决方案.
至少在XOOM的情况下,移动部分似乎已经消失了:
Mozilla的/ 5.0(Linux的; U; Android 3.0的; EN-US; Xoom的构建/ HRI39)为AppleWebKit/534.13(KHTML,例如Gecko)版本/ 4.0的Safari/534.13
但由于目前只有Andorid 3.x的平板电脑,检查Android 3就足够了.
Jor*_*sys 12
虽然您可能仍希望在User-Agent中检测"android"以实现特定于Android的功能,例如触摸屏优化,但我们的主要信息是:如果您的移动网站依赖于UA嗅探,请检测字符串"mobile"用户代理中的"android",而不仅仅是"android".这有助于为您的移动设备和平板电脑访问者提供适
通过浏览器检测Android设备
< script language="javascript"> <!--
var mobile = (/iphone|ipad|ipod|android|blackberry|mini|windows\sce|palm/i.test(navigator.userAgent.toLowerCase()));
if (mobile) {
alert("MOBILE DEVICE DETECTED");
document.write("<b>----------------------------------------<br>")
document.write("<b>" + navigator.userAgent + "<br>")
document.write("<b>----------------------------------------<br>")
var userAgent = navigator.userAgent.toLowerCase();
if ((userAgent.search("android") > -1) && (userAgent.search("mobile") > -1))
document.write("<b> ANDROID MOBILE <br>")
else if ((userAgent.search("android") > -1) && !(userAgent.search("mobile") > -1))
document.write("<b> ANDROID TABLET <br>")
}
else
alert("NO MOBILE DEVICE DETECTED"); //--> </script>
Run Code Online (Sandbox Code Playgroud)
您可以尝试使用此脚本,因为您不希望仅定位Xoom.我没有Xoom,但应该工作.
function mobile_detect(mobile,tablet,mobile_redirect,tablet_redirect,debug) {
var ismobile = (/iphone|ipod|android|blackberry|opera|mini|windows\sce|palm|smartphone|iemobile/i.test(navigator.userAgent.toLowerCase()));
var istablet = (/ipad|android|android 3.0|xoom|sch-i800|playbook|tablet|kindle/i.test(navigator.userAgent.toLowerCase()));
if (debug == true) {
alert(navigator.userAgent);
}
if (ismobile && mobile==true) {
if (debug == true) {
alert("Mobile Browser");
}
window.location = mobile_redirect;
} else if (istablet && tablet==true) {
if (debug == true) {
alert("Tablet Browser");
}
window.location = tablet_redirect;
}
}
Run Code Online (Sandbox Code Playgroud)
我在github上创建了一个项目.检查出来 - https://github.com/codefuze/js-mobile-tablet-redirect.如果有任何错误,请随时提交问题!
一旦我在用户代理中检测到Android,这就是我区分平板电脑和智能手机浏览器的方式(这是使用Python,但对其他编程语言来说同样简单):
if ("Android" in agent):
if ("Mobile" in agent):
deviceType = "Phone"
else:
deviceType = "Tablet"
Run Code Online (Sandbox Code Playgroud)
更新:根据以下评论反映在Android上使用Chrome.
基于此站点上的代理字符串:
http://www.webapps-online.com/online-tools/user-agent-strings
Run Code Online (Sandbox Code Playgroud)
这个结果出现了:
首先:
所有平板设备都有:
1. 平板电脑
2. iPad
第二:
所有电话设备都有:
1. 手机
2. 电话
第三:
平板电脑和手机设备有:
1. Android
如果您可以逐级检测,我认为结果 90% 是正确的。就像 SharePoint 设备渠道一样。
| 归档时间: |
|
| 查看次数: |
153205 次 |
| 最近记录: |