有没有办法检测用户使用的是平板电脑还是手机? 例如,一个人使用平板电脑(任何版本 3+ 和 iPad 的安卓平板电脑)上网,他们肯定希望看到与坐在台式电脑前的人相同的未精简版本。电话冲浪者肯定会更喜欢该网站的精简版,因为它加载速度更快,而且可能更容易用拇指导航。 这可以通过检查此处找到的 userAgent oct 屏幕宽度来完成:
What is the best way to detect a mobile device in jQuery?
但问题在于像 Google Galaxy Nexus 这样的手机,它具有与平板电脑相同的分辨率,但屏幕尺寸只有平板电脑的一半。在我看来,显示移动版本会更好,因为即使分辨率很高,屏幕也很小。
有没有办法检测到这一点,还是我必须做出妥协?
最佳答案
我认为您在这里对平板电脑、手机或任何其他支持网络的设备进行了根本性的任意区分。屏幕的物理尺寸似乎是您要用来决定所提供内容的指标。
在这种情况下,我会尝试根据用户代理在 HTTP header ([mobiforge.com...]) 中传递的值来实现逻辑,并在信息不可用时优雅地降级以提示用户。
您的逻辑可能看起来有点像这样:
- 如果用户代理在 HTTP header 中提供物理屏幕尺寸
物理尺寸 = UA 值。 - 否则,如果用户代理supplies a resolution and pixel dimensions
物理尺寸 = 像素尺寸除以分辨率。 - (可选)否则,use client side script to detect resolution and PPI
- 否则,如果用户代理字符串看起来像某种移动设备(正则表达式)
提示用户选择。 - 否则
假设一个默认选项。
更新: 我的回答现在已经三岁了。值得注意的是,对响应式设计的支持已经取得了显着进展,现在向所有设备提供相同的内容并依靠 css 媒体查询以对正在查看的设备最有效的方式呈现网站是很常见的。
关于javascript - 检测手机与平板电脑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9533106/