navigator.geolocation.getCurrentPosition () не получает ответ от googleapi - PullRequest
0 голосов
/ 03 мая 2019

Я использую реагирование для получения геолокации на локальном хосте: 3000.Я видел, как другой человек получал координаты геолокации на своем локальном узле, но я не могу этого сделать даже с включенным разрешением доступа к местоположению в Chrome.

Я пытался использовать как ловушки, так и синтаксис класса в реакции.Я включил разрешение доступа.В конце концов я использовал ip-адрес api, чтобы получить общее местоположение, но поскольку геолокация должна работать (по крайней мере, так мне сказали), я бы по крайней мере хотел, чтобы она работала, чтобы я мог реализовать ее с 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.

Редактировать:

Iдобавлен обратный вызов ошибки, и он напечатал:

сообщение: «Поставщик сетевого расположения на https://www.googleapis.com/': ответ не получен».

1 Ответ

0 голосов
/ 03 мая 2019

добавить необязательный обратный вызов ошибки для обработки ошибки (если пользователь отклоняет разрешение на определение местоположения)

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

вы проверяете только если оно в навигаторе или нет !!!

если пользователь отклоняет разрешение на размещение, обратный вызов ошибки будет обрабатывать его ...

Возможны следующие варианты (ссылка взята из mdn)

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