navigator.geolocation.getCurrentPosition()没有收到googleapi的回复

时间:2019-05-03 18:07:24

标签: reactjs navigator w3c-geolocation

我正在使用react在localhost:3000上进行地理位置定位。我见过另一个人在其本地主机上获取地理位置坐标,但是即使在Chrome上启用了允许位置访问,我也无法做到。

我尝试在react中同时使用钩子和类语法。我已启用允许访问。我最终使用了ip地址api来获取大致位置,但是由于地理位置应该可以正常工作(至少这是我所知道的),所以我至少希望看到它正常工作,因此可以在https中使用https来实现它。未来。甚至不会触发错误日志,而在安装组件时会触发前三个日志。这是我尝试过的代码,我已使其变得尽可能简单:


const App = props => {

  useEffect(() => {
    console.log('hello')
    console.log(navigator)
    console.log(navigator.geolocation)
    if ("geolocation" in navigator) {
      navigator.geolocation.getCurrentPosition((position) => {
        console.log(position)
      }, (error) => {
       console.log(error)
      })
    } else {
      console.log('error')
    }
  }, [])
  return (
      <div>
        <h3>Please Login.</h3>
      </div>
    )
}

export default App

我希望收到googleapi的回复。

编辑:

我添加了错误回调并打印:

消息:“'https://www.googleapis.com/处的网络位置提供者:未收到响应。”

1 个答案:

答案 0 :(得分:0)

添加可选的错误回调以处理错误(如果用户拒绝位置权限)

navigator.geolocation.getCurrentPosition(success[, error[, [options]])

您正在检查是否仅在导航器中!!!

如果用户拒绝位置权限,则错误回调将对其进行处理...

可能的选项是(引用来自mdn)

{
  enableHighAccuracy: true, 
  maximumAge        : 30000, 
  timeout           : 27000
}