检测平板电脑或桌面用户

时间:2011-06-14 14:30:30

标签: javascript html css ipad jsp

我打算为台式机平板电脑用户提供完全独立的布局/设计。我的应用程序基于Java。 我的问题是; 1.检测请求是来自台式机还是平板电脑(iPad / Xoom等)的最佳方法是什么? 2.这可以在服务器端处理,而不是通过JS用户代理字符串处理吗?

重定向的实例是如果有人试图访问Yahoo。即如果请求来自桌面浏览器,我们将被重定向到www.yahoo.com,而如果请求来自iPad等平板设备,我们将被重定向到www.yahoo.com/tablet 我正在计划一些雅虎的例子。不确定他们是如何实现它的。

我知道有些人可能会认为我应该控制2个独立的CSS,如desktop.css和tablet.css,并通过CSS媒体查询或JS用户代理进行检测。但重点是2之间的布局/设计是如此不同,我只是无法通过CSS控制,这就是原因,我打算单独使用我的网络应用程序的平板电脑版本并进行重定向。

请尽可能多地告诉我。

先谢谢你的帮助。

2 个答案:

答案 0 :(得分:1)

您必须检查HTTP请求中的用户代理字符串。基于此,您将能够识别设备 - 前提是用户未更改从设备浏览器发送的用户代理字符串。

答案 1 :(得分:1)

我必须处理几乎相同的问题,不得不在Desktop或Not-Desktop之间进行区分。我使用JavaScript进行了客户端检测。我在我的解决方案中使用RequireJS,这是我的模块:

define(function(){
    var isTouchDevice = function() {  return window.screenX === 0 && 'ontouchstart' in window || 'onmsgesturechange' in window; };
    var isDesktop = !isTouchDevice() ? true : false;
    return isDesktop;
});

为了便于阅读,我添加了变量isDesktop。