2011-03-18 124 views
2

我有两个手机页面,一个为触摸屏手机设计,一个为非触摸屏手机设计。我需要根据哪种类型来检测和重定向。如何检测手机网站的触摸屏手机

我想在这里集体讨论。我想过可能检测到屏幕分辨率并使用它,但像Blackberry Bold(非触摸屏,但具有480x320显示屏)的手机不符合该规则。

显而易见的解决方案是维护两个用户代理列表并使用它们重定向。问题是,创建这些列表将非常耗时。我也想象一旦我开始研究它,就会遇到各种例外情况,例如opera mini这样的浏览器在两组手机上(一触式和一触式)。如果这是我唯一的选择,那么从哪里开始收集有关手机的数据?

var touchScreenRegEx = new RegExp("(ipod|iphone|opera mini)"); 
var noTouchScreenRegEx = new RegExp("(blackberry|palm)"); 

var userAgent=navigator.userAgent.toLowerCase(); 
if (userAgent.match(touchScreenRegEx)) 
{  window.location = "/mobile/touch/"; 
} 
else if(userAgent.match(noTouchScreenRegEx) 
{ 
    window.location = "/mobile/no-touch/"; 
} 

有什么建议吗?

回答

2

“显而易见的解决办法是保持用户代理的两个列表,并使用它们来重定向”

你想要的是WURFL:

http://wurfl.sourceforge.net/

请记住,有手机,触摸和键盘都可以访问,所以理想情况下,如果可以提供帮助,您可以尝试避免创建两个单独的界面。