如何测试触摸屏(而不是“触摸能力”)?

5
我正在开发一个支持触摸设备的网站。我希望能够针对智能手机、平板电脑以及其他主要采用触摸屏作为输入设备的设备来进行开发。
为了实现这一目标,我正在使用Modernizr的Modernizr.touch方法。
然而,在安装有Wacom Intuos 5等数位板的计算机上,该方法返回true。显然,这些计算机的主要输入设备是键盘和鼠标,而不是触摸屏。这将产生误判,因为我想为这些计算机提供桌面用户体验,而不是触摸屏用户体验。
有没有办法检测“触摸屏功能”,而不是“触摸功能”?或者有没有其他创造性的方法来解决这个问题并避免误判呢?

我已经寻找了几个月的答案。不幸的是,我认为无法以这种方式检测硬件。 - BenM
这是一个关于这个话题的长讨论:https://github.com/Modernizr/Modernizr/issues/548 - Jason Sperske
1个回答

0
一个简单的用户测试“点击或轻触此框”应该能够告诉您他们是使用鼠标还是某个触摸设备完成操作。由于您可以获取设备的用户代理,对于平板电脑和手机,很容易假定它们具有两个数据的触摸功能...因此,如果检测到同时测试为正的桌面用户也具有触摸设备(这应该是比测试每个人更小的样本),则只能呈现“测试”。当然,我还会以某种方式记住用户选择/测试结果,以便不必再次打扰他们。

1
我很感激你的意见(无恶意) :) 我宁愿避免询问用户像“点击此按钮以便我可以呈现给您适当的菜单”这样具有侵入性的请求。我正在寻找一种自动实现这个目标的方法。维护一个活跃的用户代理和能力列表,然后将其附加到用户配置文件中似乎是解决这个问题的不成比例、不优雅的方案。 - OpherV
从技术上讲,有一个名为WURFL的项目可以将用户代理映射到设备功能(用于服务器端设备检测)。但我不知道它对触摸事件的认知程度(它主要用于提供WML vs XHTML-MP)。 - Jason Sperske
为什么要踩?查看用户代理字符串并做出决定实际上是相当普遍和标准的做法。这就是大多数“移动设备启用”网站确定向访客提供哪个站点的方式。如果没有用户明确告诉您他们使用的设备,我认为这是下一个最好的选择。 - SnakeDoc

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接