与此问题相关:Detect Android phone via Javascript / jQuery
在新版本的android sdk中,本机浏览器不再返回代号“android”了。
navigator.userAgent
返回类似的内容:
mozilla / 5.0(X11; Linux x86_64)AppleWebkit7534.24(KHTML,与Gecko一样)Chrome / 11.0.696.34 Safari7534.24
有什么建议吗?这是来自HTC One S的手机和当前的Android 4.1.1版
答案 0 :(得分:0)
见this question。您确定自己没有在桌面模式下查看吗?股票浏览器和许多其他浏览器有两种不同的用户代理,具体取决于浏览模式。
答案 1 :(得分:0)
不要使用浏览器嗅探!使用特征检测。有一个名为modernizr的javascript库,可以根据用户客户端的功能执行操作。
答案 2 :(得分:0)
是的...这可能是因为您的浏览器处于“桌面模式”。
您可能希望在小屏幕上显示您的网页的某些移动版本,以便您可以尝试:
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" />
<script type="text/javascript">
if ((screen.width < 480) || (screen.height < 480)) {
location.replace('/m/');
}
</script>
您需要viewport metatag才能让浏览器报告实际的屏幕大小。
编辑:
根据{{3}},您可能需要等待一段时间让浏览器“赶上”才能检查屏幕大小,所以我想最好使用它:
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" />
<script type="text/javascript">
setTimeout(function() {
if ((screen.width < 480) || (screen.height < 480)) {
location.replace('/m/');
}
}, 200);
</script>