ios - 使用位置服务在移动 safari 中使用 geolocation.watchPosition()

标签 ios geolocation mobile-safari location-services

输出的地理坐标仅在第一次加载时准确,问题是当 iPhone 屏幕超时并且位置服务也超时时。如果我再次打开 safari,地理坐标会相差 100 米。如果我将 safari 应用程序推到后台,也会发生同样的事情。如果我重新加载请求地理定位的 safari 选项卡,或者如果我清除 safari 应用程序缓存并再次打开 safari,问题就解决了。为什么会这样?我的用例涉及向用户显示一个指向目的地的箭头。因此,很可能电话偶尔会因用户超时而导致定位服务超时。 iOS chrome 不会模仿此行为并按预期工作,即地理坐标始终是焦点选中和/或屏幕超时后的准确事件。

最佳答案

我不知道为什么会发生这种情况,但它也发生在我身上。我能够通过使用 window.setInterval 每 5 秒左右调用一个函数来检查位置是否已更新来解决这个问题。如果没有,则函数停止并重新启动地理定位 watch 。

重新启动地理定位 watch 与重新加载页面具有相同的效果,即精度再次变得更好,并且位置更新恢复。希望对您有所帮助!

关于ios - 使用位置服务在移动 safari 中使用 geolocation.watchPosition(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40325654/

相关文章:

iphone - 无法确定 UIImage 不透明度属性

c# - IPV6到国家

sql - PostgreSQL:ST_GeomFromText(未知)不存在

jquery - 禁用 Mobile Safari 中的“上一个”和“下一个”按钮

ios - 没有 AVPlayer 代表?如何跟踪歌曲何时播放完毕? Objective C iPhone 开发

ios - 具有相同日期值和相同散列的两个NSD如何不相等?

ios - 无法在模拟器中运行应用程序

google-maps - 使用Bing或Google Maps API获取用户的位置(纬度,经度)

html - 在移动 safari、横向 * 和 * 纵向 (iPhone/iPad) 中将背景图像居中

css - 位置 :fixed element inside another position:fixed element doesn't show up (iPad only)