jquery мобильная геолокация - PullRequest
0 голосов
/ 21 августа 2011

простой вопрос .. как установить перенаправление, если пользователь выбирает не разрешать всплывающее окно геолокации?Если позволяют и ошибка я покрыл.работает отлично.Но я не уверен, как установить запрещающий выбор.

function showLocation(position) {
      var latitude = position.coords.latitude;
      var longitude = position.coords.longitude;
      //window.location = "/restaurant/latitude/40.714269/longitude/-74.005972/";
      window.location = "/restaurant/";
    }

    function errorHandler(err) {
      if(err.code == 1) {
            alert("Error: Can not access!");
      }else if( err.code == 2) {
            alert("Error: Position is unavailable!");
      }
    }
    function getLocation(){

       if(navigator.geolocation){
          // timeout at 60000 milliseconds (60 seconds)
          var options = {timeout:60000};
          navigator.geolocation.getCurrentPosition(showLocation, errorHandler, options);
       }else{
          alert("Sorry, browser does not support geolocation!");
       }
    }

Ответы [ 2 ]

1 голос
/ 21 августа 2011

В соответствии со спецификацией API W3C , обработчик ошибок должен вызываться с соответствующей причиной сбоя. Это включает в себя разрешение, отклоненное пользователем.

К сожалению, похоже, что в Firefox есть ошибка / функция , где, если вы выбираете Not Now из всплывающего окна, ничего не происходит - обработчик ошибок не вызывается. Однако, если вы выберете Never Share, ваш обработчик ошибок будет вызван и с кодом, который вы разместили, вы увидите предупреждение, говорящее Error: Can not access!.

Третьего варианта в Chrome нет (только Allow и Deny), и, похоже, все работает нормально.

Также см. Как обнаружить отрицательный ответ пользователя для геолокации , где предлагается решение (оно включает в себя использование тайм-аута для обнаружения того, что ничего не произошло, и обработку его так же, как отказано в разрешении)

0 голосов
/ 21 августа 2011

Я вижу, что вы пытались установить window.location. Почему это не работает для вас?

window.location = "../nonGeoLocationPage.html"

...