javascript - 检测手机与平板电脑

标签 javascript jquery html css

有没有办法检测用户使用的是平板电脑还是手机? 例如,一个人使用平板电脑(任何版本 3+ 和 iPad 的安卓平板电脑)上网,他们肯定希望看到与坐在台式电脑前的人相同的未精简版本。电话冲浪者肯定会更喜欢该网站的精简版,因为它加载速度更快,而且可能更容易用拇指导航。 这可以通过检查此处找到的 userAgent oct 屏幕宽度来完成:

What is the best way to detect a mobile device in jQuery?

但问题在于像 Google Galaxy Nexus 这样的手机,它具有与平板电脑相同的分辨率,但屏幕尺寸只有平板电脑的一半。在我看来,显示移动版本会更好,因为即使分辨率很高,屏幕也很小。

有没有办法检测到这一点,还是我必须做出妥协?

最佳答案

我认为您在这里对平板电脑、手机或任何其他支持网络的设备进行了根本性的任意区分。屏幕的物理尺寸似乎是您要用来决定所提供内容的指标。

在这种情况下,我会尝试根据用户代理在 HTTP header ([mobiforge.com...]) 中传递的值来实现逻辑,并在信息不可用时优雅地降级以提示用户。

您的逻辑可能看起来有点像这样:


更新: 我的回答现在已经三岁了。值得注意的是,对响应式设计的支持已经取得了显着进展,现在向所有设备提供相同的内容并依靠 css 媒体查询以对正在查看的设备最有效的方式呈现网站是很常见的。

关于javascript - 检测手机与平板电脑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9533106/

相关文章:

javascript - Canvas 中出现奇怪的线条

javascript - 如何在没有全局变量的情况下从html中的不同事件调用类方法

javascript - 如何通过 v-el 指令使用 blockUI 和 Vue.js

javascript - 动态添加输入字段 Jquery

javascript - jQuery 按评级 (desc) 排序并根据值隐藏 div

jquery - 使用 Highcharts 调整高度

javascript - polymer 单向绑定(bind)不起作用

javascript - 是否有检查嵌套属性是否存在的快捷方式

javascript - d3/dc.js - 如何创建堆叠条形图,同时告诉 crossfilter 将数组中的元素视为单独的记录?

Javascript在多维数组中搜索元素