我在有角度的应用程序中使用Google Maps javascript API。在带有鼠标的常规台式机上使用Google Chrome浏览器中的应用程序时,各种导航功能(平移/缩放)可以在应用程序的Google Maps部分正常工作。但是,当我尝试在Windows 8.1屏幕上使用触摸手势时,地图无法识别任何平移或缩放手势。如果我捏变焦,什么也不会发生。如果我像鼠标一样在屏幕上双击,则地图将放大。如果我用手指拖动,浏览器窗口将处理触摸事件,而不是地图div,因此左右导航页面历史记录以及上下拖动滚动条整个页面,而不是平移地图。
作为另一个实验,我尝试在Chrome内使用Google地图http://maps.google.com本身,并且工作正常。因此,这意味着可以通过某种方式完成…。
那么,它是视口元标记类型的东西吗?还是与地图元素的大小有关?还是这是一件棱角分明的事情,我们需要以某种方式使用ngTouch来使应用程序响应触摸事件吗?
更新: 触摸事件 确实 在iPad的同一页面上起作用。我不确定该说什么,但令人鼓舞的是至少它可以在移动Safari中使用。似乎我们需要与Angular进行交流,以使其接受触摸事件。
更新
该问题已在错误中处理
https://issuetracker.google.com/issues/35824421
并于2016年12月在3.27版的Google Maps JavaScript API中解决。
实际上,这是一个Google Map错误#6425
有趣的事实是Google Map API不会根据用户代理提供相同的内容。因此,对于某些用例,解决方法是通过以下方式欺骗用户代理ether:
任何Android或iOS设备都可以使用,将默认的桌面Google Map应用更改为类似移动设备的应用。拖放功能将再次在此类似移动设备的应用上运行。
经过一些测试,切换到类似移动应用程序的最小UA是“ Chrome”或“ AppleWebKit / 537”,但是使用它听起来很危险,因为将来可能会发生很大变化。
对我来说,基于铬的kioks,可以解决问题,直到修复了错误。