我有一台带有24英寸触摸屏的Ubuntu机器,它工作正常。我可以移动鼠标,做几个触摸点的手势等硬件工作正常。现在我想知道是否可以制作一个浏览器将事件解释为触摸而不是mousedown,mousedrag等.HTML5对触摸和多点触摸有很好的支持,我想为这个设置开发Web应用程序。有没有人知道如何做到这一点?我已经尝试启用--enable-touch-events开关没有成功。看起来这只是在ms windows版本中实现的。
~$ xinput -version
xinput version 1.6.0
XI version on server: 2.2
~$ xinput
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ Advanced Silicon S.A CoolTouch(TM) System id=9 [slave pointer (2)]
⎜ ↳ USBest Technology SiS HID Touch Controller id=10 [slave pointer (2)]
⎜ ↳ Logitech USB Optical Mouse id=11 [slave pointer (2)]
⎜ ↳ MCE IR Keyboard/Mouse (nuvoton-cir) id=14 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Power Button id=6 [slave keyboard (3)]
↳ Video Bus id=7 [slave keyboard (3)]
↳ Power Button id=8 [slave keyboard (3)]
↳ CHICONY HP Basic USB Keyboard id=12 [slave keyboard (3)]
↳ Nuvoton w836x7hg Infrared Remote Transceiver id=13 [slave keyboard (3)]
我已经阅读了有关使用touch-UI标志进行构建的信息,但是我不会这样做会有所帮助吗?
答案 0 :(得分:2)
当使用GTK构建Chrome时,Chrome不支持Linux上的触摸屏。从Chrome 35开始,Linux不再使用GTK,而是基于Windows和ChromeOS上使用的相同UI框架(“Aura”)。这意味着它现在应该正确支持触摸屏(虽然我经常在Ubuntu中看到触摸屏错误 - 尤其是在使用多个显示器时)。
答案 1 :(得分:1)
请参阅 http://www.html5rocks.com/en/mobile/touchandmouse/ 为你的问题提供良好的答案。
你说
我已尝试启用--enable-touch-events开关
您是否使用该命令行开关启动了chrome?
也许您指的是以下内容,因为您希望接收真正的触摸事件,因此在您的案例中使用不会是错误的。
https://developers.google.com/chrome-developer-tools/docs/mobile-emulation#emulate-touch-events
尝试在JavaScript控制台中进行试验,并为您感兴趣的任何事件类型安装一个小事件处理程序(见下文)。
["click", "mousemove", "touchmove"].forEach(function(value, index, object) {
document.addEventListener(value, function(event) {
console.log(JSON.stringify([event.type,
event.srcElement.localName + (event.srcElement.id ? '#'
+ event.srcElement.id : "")
+ (event.srcElement.classList.length ? '[class='
+ event.srcElement.classList + ']' : ""),
(new Date(event.timeStamp)).toJSON()]));
}, false);
});
这有帮助吗?