问题描述
|
我计划为台式机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以提高可读性。