Angular геолокация - PullRequest
       0

Angular геолокация

3 голосов
/ 03 марта 2020

Я застрял на geolocation. На самом деле это работает нормально, но некоторые проблемы появляются, когда я использую If else. Когда щелчок пользователя разрешает местоположение, оно работает, но возникает проблема, когда щелчок пользователя не позволяет, он не вставляется в else. Это ДЕМО для справки.

Компонент

    ngOnInit() {
       this.getUserLocation();
    }

    getUserLocation() {
       if (navigator.geolocation) {
        navigator.geolocation.getCurrentPosition(position => {
            this.lat = position.coords.latitude;
            this.lng = position.coords.longitude;
          });
    }else {
       console.log("User not allow")

    }
}

Ответы [ 3 ]

4 голосов
/ 03 марта 2020

@ shayan ans - правильный подход для достижения желаемого результата. Я немного изменю его подход, чтобы оправдать ваши ожидания.

Попробуйте что-то вроде этого

navigator.geolocation.getCurrentPosition(function(){
        alert('Location accessed')
},function(){
       alert('User not allowed')
},{timeout:10000})
1 голос
/ 03 марта 2020

Попытка этого может вам помочь:

navigator.geolocation.getCurrentPosition(successCallback,errorCallback,{timeout:10000});

Хотя у меня это сработало. Ваши мысли?

0 голосов
/ 21 марта 2020

Если вы работаете с API геолокации в Angular, эта простая библиотека может быть полезна https://github.com/ng-web-apis/geolocation

Просто перехватить ошибку из геолокации $ observable (из библиотеки) с помощью Rx Js

В библиотеке также есть токен GEOLOCATION_SUPPORT, который возвращает значение false, если браузер пользователя не поддерживает API геолокации

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...