检测平板电脑或台式机用户

问题描述

| 我计划为台式机Vs平板电脑用户提供完全独立的布局/设计。我的应用程序基于Java。 我的问题是; 1.检测请求是来自台式机还是平板电脑(iPad / Xoom等)的最佳方法是什么 2.是否可以在服务器端而不是通过JS用户代理字符串来处理? 重定向一个实时示例是是否尝试访问Yahoo。也就是说,如果请求来自桌面浏览器,我们将重定向到www.yahoo.com;如果请求来自iPad等平板电脑设备,我们将重定向到www.yahoo.com/tablet 我正在按照Yahoo示例计划一些事情。不知道他们如何实现它。 我知道有些人可能会认为我应该只控制2个独立的CSS,例如desktop.css和tablet.css,并通过CSS媒体查询或JS用户代理进行检测。但是关键是两者之间的布局/设计是如此不同,以至于我只能通过CSS无法控制,这就是原因,我计划为Web应用程序使用单独的平板电脑版本并进行重定向。 请让我知道更多建议。 在此先感谢您的帮助。     

解决方法

        您必须在HTTP请求中检查用户代理字符串。基于此,您将能够识别设备-前提是用户未更改从设备浏览器发送的用户代理字符串。     ,        我不得不处理几乎相同的问题,必须区分台式机或非台式机。我使用了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以提高可读性。