未知错误获取位置 GeolocationPositionError 代码 2 - Firefox Linux Mint

Rez*_*eem 1 firefox linux-mint npm reactjs

试图测试地理位置功能在我的阵营项目上Firefox 74.0Linux Mint 19.3

尝试执行以下代码时:

 window.navigator.geolocation.getCurrentPosition(
        position => console.log(position),
        err => console.log(err)
    );
Run Code Online (Sandbox Code Playgroud)

Firefox 浏览器控制台中显示以下错误:

GeolocationPositionError { code: 2, message: "Unknown error acquiring position" }
Run Code Online (Sandbox Code Playgroud)

Rez*_*eem 5

大约一年前,谷歌改变了它的政策,所以现在它在访问他们的地理定位服务时需要一个有效的 API 密钥。

如果您在 Firefox 地址栏中输入:

about:config
Run Code Online (Sandbox Code Playgroud)

并搜索以下内容:

geo.provider.network.url
Run Code Online (Sandbox Code Playgroud)

你会看到它的值被设置为

https://www.googleapis.com/geolocation/v1/geolocate?key=%GOOGLE_LOCATION_SERVICE_API_KEY%
Run Code Online (Sandbox Code Playgroud)

这告诉我们您需要一个有效的 API 密钥来代替 %GOOGLE_LOCATION_SERVICE_API_KEY%

在 Mozilla 内部解决这个问题之前,最好的解决方案是将该值更改为:

https://location.services.mozilla.com/v1/geolocate?key=test
Run Code Online (Sandbox Code Playgroud)



注意:此解决方案最适合测试。对于生产,您可以尝试使用fetchaxios在 React 中调用 ajax 。