现在还支持navigator.geolocation定位吗?

网上很多教程都可以定位的到,但是我用navigator.geolocation.getCurrentPosition(showPosition, showError);都是执行第二个错误方法,没有获取到位置,现在还能用吗,是不是因为谷歌被禁不能用了,如果不能用还有什么办法实现吗

这种情况可能是因为浏览器没有开启定位功能,或者用户拒绝了浏览器的定位请求。可以在调用getCurrentPosition()方法之前,先通过navigator.geolocation.permissions.query()方法来检查定位功能是否开启,并在回调函数中判断用户是否同意定位请求。例如:

同时,在使用getCurrentPosition()方法时,也可以传递一些配置项,如指定获取位置信息的超时时间、是否持续获取位置信息、是否允许缓存位置信息息等。例如:

如果出现错误,可以在错误处理函数中检查错误码,确定错误原因。例如:

温馨提示:答案为网友推荐,仅供参考
第1个回答  2023-02-15
navigator.geolocation API 是一种 HTML5 标准,用于通过浏览器获取用户的地理位置信息。这个 API 的工作原理是,它会向用户请求权限,以便在用户的设备上获取位置信息,然后使用设备的 GPS、IP 地址或 Wi-Fi 信号等信息确定设备的位置。
从技术上讲,navigator.geolocation API 在现代浏览器中仍然受支持,并且应该可以正常工作。但是,实际上,浏览器可能会限制该 API 的使用,特别是在安全性方面。例如,在某些浏览器中,该 API 可能只能在安全连接(HTTPS)下使用,而在其他浏览器中,可能会要求用户明确授权以允许访问位置信息。
如果您使用的是旧版浏览器,navigator.geolocation API 可能不支持或受到限制,因此您可能需要尝试其他方法来获取位置信息。一种替代方法是使用第三方的地理位置服务,例如百度地图、高德地图等,这些服务通常提供 API 接口,可以通过向这些接口发送请求来获取位置信息。
另外,您还可以尝试使用 HTML5 中的其他定位 API,例如基于 IP 地址的定位,来获取用户的位置信息。这些方法可能不如 GPS 定位准确,但仍然可以提供有用的信息。如果您需要更高精度的位置信息,您可能需要使用移动应用程序开发框架,例如 React Native 或 Ionic,以便直接访问设备的 GPS 信息。
总之,navigator.geolocation API 仍然受支持,但在实践中可能会受到限制。如果您无法使用该 API,您可以考虑使用其他方法来获取位置信息,例如第三方地图服务或基于 IP 地址的定位。