2013-03-13 137 views
5

我正在开发一个为支持触摸的设备实现特定功能的网站。我的目标是瞄准智能手机,平板电脑,实际上所有以触摸屏为主要输入的东西。如何测试触摸屏(而不是“触摸功能”)?

要做到这一点我使用的Modernizr的Modernizr.touch

然而,这将返回上安装有一个Wacom的数位板电脑铬如此。 (与Wacom Intuos 5确认)。显然,这些计算机上的主要输入设备是键盘和鼠标,而不是触摸屏。这会产生误报,因为我想为这些计算机提供桌面用户体验,而不是触摸屏用户体验。

有没有办法检查“触摸屏功能”,而不是“触摸功能”?或者有其他创造性的方法来解决这个问题并避免误报?

+0

我几个月来一直在寻找答案。不幸的是,我认为这样检测硬件是不可能的。 – BenM 2013-03-13 16:47:56

+0

这是一个关于这个话题的长时间的讨论:https://github.com/Modernizr/Modernizr/issues/548 – 2013-03-13 16:57:55

回答

0

“点击或点击此框”的简单用户测试应该能够告诉您他们是否使用鼠标或某个触摸设备来完成操作。由于您可以获得设备的用户代理,因此对于平板电脑和手机,可以很容易假设这两个数据具有触摸功能......因此,如果您检测到也测试了积极的桌面用户,则只能显示“测试”对于触摸设备(应该是比测试每个人都小的样本,这可能会让用户感到烦恼)。当然,我也会记住用户的选择/测试结果,所以你不必再次错误。

+1

我很欣赏输入(没有双关语意图):)我宁愿避免询问任何用户的侵入性“单击此按钮,以便我可以向您呈现适当的菜单”。我正在寻找一种方法来自动实现这一点。维护用户代理和功能的活动列表,然后将其附加到用户配置文件看起来像是针对此问题的不成比例的,不合适的解决方案。 – OpherV 2013-03-13 17:03:21

+0

从技术上讲,有一个名为WURFL的项目将用户代理映射到设备功能(它用于服务器端设备检测)。我不知道它对触摸事件的意识(它主要用于服务WML和XHTML-MP) – 2013-03-13 17:04:58

+0

为什么downvote?查看User-Agent字符串并确定一些内容实际上是相当常见和标准的做法。这就是大多数“启用移动设备”的网站决定向客人提供哪个网站。如果用户没有具体告诉你他们有什么设备,我认为这是下一个最好的事情。 – SnakeDoc 2013-03-13 19:04:42