【发布时间】:2013-02-12 13:26:41
【问题描述】:
我正在尝试检测最终用户是在手机、平板电脑还是个人电脑上
我已经在谷歌上搜索了一段时间,显然没有简单的解决方案。
好吧,我想我不应该使用分辨率,因为现在有些平板电脑具有惊人的分辨率。
我不应该依赖方向,因为 windows8 笔记本电脑可以像平板电脑一样旋转。 (而且响应式设计对我目前的项目来说太难了)
我一直在尝试使用 UserAgent(认为它也有其缺点),但无法使其正常工作,下面是我用来区分手机/平板电脑和 PC 的在线不同版本的组合,他们只是这样做不工作,我不知道为什么
var agents = ['android', 'webos', 'iphone', 'ipad', 'blackberry','iemobile','phone','mobile'];
for(i in agents) {
if(navigator.userAgent.toLowerCase().match('/'+agents[i]+'/i')) {
return true;
}
}
if( /Android|webOS|iPhone|iPad|iPod|BlackBerry/i.test(navigator.userAgent) ) {
return true;
}
if( navigator.userAgent.match(/Android/i)
|| navigator.userAgent.match(/webOS/i)
|| navigator.userAgent.match(/iPhone/i)
|| navigator.userAgent.match(/iPad/i)
|| navigator.userAgent.match(/iPod/i)
|| navigator.userAgent.match(/BlackBerry/i)
|| navigator.userAgent.match(/Windows Phone/i)
|| navigator.userAgent.match(/bada/i)
|| navigator.userAgent.match(/Bada/i)
){
return true;
}
【问题讨论】:
-
它们大致相同,应该可以工作。你是什么意思他们不工作? userAgent 是什么?
-
他们怎么'只是不工作'?
-
为什么你需要决定平板电脑/手机/电脑?如果您怀疑该人没有物理键盘(到底什么是 Asus Transformer?),您不应该添加控件
-
华硕 PadFone 让事情变得更加复杂。它可以在运行时从手机切换到平板电脑,IIUC
-
好吧..以上所有内容都不返回true。老实说,我不知道为什么会发生这种情况
标签: javascript browser-detection device-detection