JS - 为什么 Chrome 中的 touchEvent.identifier 总是零?

JS - why touchEvent.identifier in Chrome is always zero?

我正在玩触摸事件,我实现了一个为每个手指创建和移动圆圈的演示。在 iOS Safari 上没问题,但 Android Chrome returns 总是“0”作为触摸的标识符(https://developer.mozilla.org/en-US/docs/Web/API/Touch/identifier)。是错误、"anti-user-tracking" 隐私选择还是其他什么?是否有识别触摸的解决方法?

谢谢。

这似乎是由于对 W3C 规范的解读与 Apple 在 iOS Safari 中使用的规范不同。 Android Chrome 当只有一根手指触摸屏幕时,触摸标识符为 0。当两根手指接触时,它会为它们提供标识符 0 和 1,依此类推。这其实符合W3C规范的写法:

长型标识符,只读
每个接触点的标识号。当一个触摸点变为活动状态时,必须为其分配一个不同于任何其他活动触摸点的标识符。当触摸点保持活动状态时,所有引用它的事件都必须为其分配相同的标识符。

注意它只需要相对于任何其他活动触摸点是唯一的,这意味着它可以与以前不再活动的触摸点相同。这远不如 Apple 实现有用。