我在iOS6上的iPhone4和iPhone5上的移动Safari上面临一种奇怪的行为。
使用
以高精度跟踪用户在浏览器中的位置geolocation.watchPosition({ enableHighAccuracy: true, maximumAge: 0, callback })
通常情况下,当设备在室外,晴朗的天空和移动时,GPS位置的准确性和更新周期非常好。
传递给回调的coords
对象的精确度为5米,给出了正确的标题值,并且在移动时至少每500毫秒触发一次回调。
但是:即使我在相同的条件下(尽可能地)测试它,有时看到的位置也不会准确。
此外,更新周期更长,差不多30秒。
基本上,在这种情况下,HTML地理位置不能用于准确跟踪位置。
这似乎发生了,当GPS传感器未处于“热备用”状态时,我的意思是它在一段时间内没有使用(不确定多长时间)由另一个原生应用程序使用。
< / LI>重新加载页面,重新允许GPS访问并重新初始化watchPosition不会改变任何内容,仍然会导致准确性不佳和更新缓慢。
更改传递给watchPosition
的选项似乎没有做任何事情。
手动修复1:
手动修复2:
当问题发生时,我查看了回调的coords
对象并检测到以下内容:
即使通过的位置远离设备的实际位置(> 1km),通过的accuracy
也要小得多(通常在165米处)。永远不会给出heading
。
当iPhone上的WiFi被禁用时,设置面板中会显示启用WiFi将提高确定位置的准确性(因为地理编码WiFi网络数据支持AGPS)。但据我所知,如果你想在手机游戏中使用GPS,那么不是真的。事实上,它恰恰相反。
在我看来,移动safari做了这样的事情来确定位置:
如果GPS已经在设备上激活/使用,它会使用GPS传感器(快速准确的位置更新)
如果GPS之前未启用且启用了WiFi,则设备仅会使用其WiFi数据库来获取该位置。 (非常慢的更新,不准确)。它只是从一个WiFi位置更新到另一个。你可以清楚地看到这一点,例如如果你在联邦道路上开车,因为你的位置大多被映射到下一个住宅区。
以前GPS未激活且WiFi 禁用移动版Safari将使用GPS确定设备的位置(同样,快速准确)。
有人可以证实我的问题和观察结果吗? 我在之前的iOS版本中使用过地理位置,但之前从未遇到过这个问题。
这是一个已知的移动野生动物园的错误,是否有机会解决这个问题?或者我错过了watchPosition
的更好配置以获得更好的结果?
答案 0 :(得分:0)
很多人都描述过类似的问题,包括我自己。在本次讨论中,我已经在第5页及以后(作为alstorp)描述了我的问题https://discussions.apple.com/thread/4313850?start=45&tstart=0 阅读并查看它是否与您的问题相符。
问题在于,据我所知,Apple尚未证实这一点。他们正在努力修复它吗?它真的在他们身边吗?这真的是个bug吗?因此我们不知道何时/是否会被修复......
有没有人在iOS 6中没有基于浏览器的地理定位问题? (即使在不同情况下进行多次测试后)。
您是否广泛测试过您的修补程序?我的经验是,这种类型的修复在某些情况下有所帮助,但不是所有时间(或长时间)。如果它们可靠地为您工作将会非常有趣......
(同时查看IOS6 geolocation watchPosition Callbacks fail iOS 6 breaks GeoLocation in webapps (apple-mobile-web-app-capable))
答案 1 :(得分:0)
有人可以证实我的问题和观察结果吗?我在之前的iOS版本中使用过地理位置,但之前从未遇到过这个问题。
我尝试了watchPosition(onGeoSuccess,onGeoFail,{enableHighAccuracy:true});在我的网络应用程序中使用我的iPhone(iOS 7.0.2)。
随着WiFi的准确性非常糟糕,有时一英里。随着WiFi关闭精度接近完美,偶尔会有几百英尺的差异。
我还没有测试看看是否有助于让GPS在捕获点之间运行,或者如果最好将它关闭,直到你处于下一个捕获点并让watchPosition()函数稳定下来。