3

我有一个 UIWebView 加载一个包含嵌入式谷歌地图地图的网页。只要用户在平移 Google 地图,我就希望 iOS 应用程序执行操作。(我正在使用在 Javascript 和 Objective-C 代码之间桥接的标准方法——创建一个 IFrame 并将其作为页面加载在另一侧拾取——这部分工作正常。)

我遇到的问题是在 iPhone 上的 Safari 上运行的 Google Maps API 不会连续接收“平移”事件。它只在平移结束时拾取一个事件。(我使用 Safari 中可用的 iPhone 模拟器网络检查器工具解决了这个问题。)相比之下,在桌面 Safari 中运行的 Google 地图会在用户平移地图时获取连续的事件流——这正是我想要的。

这是在移动设备和移动设备之间运行不同的 Javascript 代码。桌面 Safari。

google.maps.event.addListener(map, 'bounds_changed', function(){
    console.log("This browser is noticing panning.")
})

总而言之,在桌面版 Safari 中,它在“更改边界”操作期间连续打印,而在移动版 Safari 中,它只在操作结束时打印一次。

这是 Google 地图还是 iOS Safari 的问题?我该如何解决?

编辑:虽然在 iOS Safari 中未正确触发“bounds_changed”事件,但会连续触发“拖动”事件。然而,map.getBounds()地图的边界(用 检索)直到拖动动作完成后才会更新,因此如果我需要边界,监听“拖动”并没有多大帮助。

4

0 回答 0