我有两个移动页面,一个用于触摸屏手机,另一个用于非触摸屏手机。我需要根据哪种类型进行检测和重定向。
我正在尝试集思广益。我想过可能会检测屏幕分辨率并使用它,但黑莓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/";
}
有什么建议吗?
答案 0 :(得分:2)
“显而易见的解决方案是维护两个用户代理列表并使用它们来重定向”
你想要的是WURFL:
请记住,手机既可以触摸又可以通过键盘访问,所以理想情况下,如果可以提供帮助,您可以尝试避免使用两个独立的界面。
答案 1 :(得分:1)
有关艺术品检查开始的概述:
http://yiibu.com/articles/rethinking-the-mobile-web/
总而言之,使用WURFL或DeviceAtlas来推断基于用户代理的触摸支持可能是完成您所需要的最简单,最快捷的方式。