我有两个移动页面,一个是为触摸屏手机设计的,另一个是为非触摸屏手机设计的。我需要根据哪种类型来检测和重定向。
我想在这里集思广益。我曾想过可能会检测屏幕分辨率并使用它,但黑莓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/";
}有什么建议吗?
发布于 2011-03-18 21:17:29
显而易见的解决方案是维护两个用户代理列表,并使用它们重定向
你想要的是WURFL:
http://wurfl.sourceforge.net/
请记住,有些手机是可以访问触摸和键盘的,所以理想情况下,如果您可以帮助它,您应该尽量避免制作两个独立的接口。
发布于 2011-03-18 23:39:16
要获得艺术开始的良好概览,请查阅:
http://yiibu.com/articles/rethinking-the-mobile-web/
总之,使用WURFL或DeviceAtlas来推断基于用户代理的触摸支持可能是完成所需任务的最简单、最快捷的方法。
https://stackoverflow.com/questions/5357505
复制相似问题