在android 2.3默认浏览器上检测多点触摸操作的touchstart事件



如何在android 2.3浏览器中检测多点触摸操作的触摸启动事件

最近,我有机会将这个问题作为我项目的一部分进行研究。添加调查结果和解决方法作为此问题的答案。

问题:
在android 2.3浏览器上检测多点触摸操作的触摸启动事件

发现结果:
在支持多点触摸的浏览器中,多点触摸事件对象将包含一个数组"触摸",该数组将包含所有触摸点。但在Android 2.3默认浏览器中,它只包含用于多点触摸操作的单点触摸,并且会连续触发多点触摸启动事件。通过记录事件,我们可以看到只有一个触摸点的连续触摸启动事件被触发,而不是一个触摸启动和多个触摸点。

解决方法:
可以通过将触摸事件存储在阵列中来识别触摸启动事件。每当发生新的事件时,也要检查前一个事件。如果连续的事件是触摸启动,我们可以假设它是多点触摸。

请参阅以下参考资料:
谷歌关于触摸事件问题的讨论:

  • https://code.google.com/p/android/issues/detail?id=11909

用于测试浏览器中的多点触摸支持

  • http://scripty2.com/demos/touch/touchspector/
  • http://www.paulirish.com/demo/multi
  • https://rawgit.com/borismus/MagicTouch/master/index.html
  • https://cdn.rawgit.com/muhammedbasil/6d49a884f6ca315614be/raw/5aed46a31d46638b15fbb0a34366346e67d0738a/index.html

最新更新