HTML5定位API和一些定位失败的场景

2019-12-12  本文已影响0人  葶寳寳

地理位置 API 允许用户向 Web 应用程序提供他们的位置。出于隐私考虑,报告地理位置前会先请求用户许可。

HTML5提供了Navigator.geolocation.getCurrentPosition(success, [error, options]) API来获取当前定位。

这会异步地请求获取用户位置,并查询定位硬件来获取最新信息。当定位被确定后,定义的回调函数就会被执行。您可以选择性地提供第二个回调函数,当有错误时会被执行。第三个参数也是可选的,您可以通过该对象参数设定最长可接受的定位返回时间、等待请求的时间和是否获取高精度定位。

默认情况下,getCurrentPosition()会尽快返回一个低精度结果(options 中有一个 enableHighAccurancy 属性,默认值是false)。

这里所谓的“高精度”,也就是说通过 GPS 定位。但是 GPS 定位通常比较耗电、而且定位速度比较慢,所以 enableHighAccurancy默认值 false,也就是说程序会尽快通过 WLAN、IP 来定位,而不是会刻意的使用 GPS 来定位。

手机的系统设置导致的一些定位失败问题:

1.在设备中可以设置系统的定位策略,如果选择“仅限设备-使用 GPS 确定位置”,那么默认的定位策略“快速定位”将会尝试用网络定位,但这个选项没有启动网络、可能会导致定位失败。

2.还有一种定位失败的场景是,在系统中设置了定位选项为允许,但设置中并未开启GPS定位,也可能会导致定位失败。(在默认的快速定位策略下,用网络或IP定位失败后,会尝试用GPS定位)。


image.png

webview不支持HTML5定位API,这种情况下定位API不会返回任何结果。

上一篇下一篇

猜你喜欢

热点阅读