移动端JavaScript触摸事件.rotationAngle始终为0的问题求助
关于Touch.rotationAngle属性始终为0的问题及分析
- 尝试在代码中使用
rotationAngle属性,但该值始终为0,无法确定这是bug还是需要特定设备支持。 - 测试方式:可修改W3Schools的触摸示例代码,将
var x = event.touches[0].clientX替换为var x = event.touches[0].rotationAngle进行测试;需注意,若手指接触区域接近圆形,该值会显示为0,测试时要保证接触区域足够长。 - 需求背景:
radiusX和radiusY属性可正常工作,但缺少rotationAngle就无法判断手指接触的形状,我需要实现单根手指同时按下两个屏幕按钮的功能,没有该属性的话只能点击单个按钮或按钮间的空隙。 - 排查情况:
- 已在安卓Chrome和安卓Firefox中测试,仍无法确定问题出在浏览器、系统、系统设置还是设备本身。
- 该属性对应安卓原生的
MotionEvent.PointerCoords.orientation,曾考虑开发安卓应用测试该功能,但搭建Java开发环境需要花费较多时间。 - 已在Mozilla bug跟踪平台提交报告,工作人员表示无法复现,但我询问的两位外部测试者测试后值均为0,还有一条已删除的评论也确认了这一点,怀疑是近期出现的回归问题,隐约记得一个月前相关测试工具效果更好,但无法确认,推测可能是系统层面的问题。
- 结论:决定不再使用
rotationAngle,因为它对许多用户来说显然不可靠。 - API设计问题:该API文档标注取值范围为0到90,但实际应该支持负值或取值范围为0到180才具备实用价值;而对应的安卓原生属性取值范围是-pi/2到pi/2。
内容的提问来源于stack exchange,提问作者aiyo4930aiyo
相关产品推荐
相关产品推荐

