Geolocation API Permissions Web Browser - PullRequest
6 голосов
/ 02 июня 2011

Я использую этот код, чтобы получить пользовательское местоположение. Все идет хорошо, пока пользователь не откажет в разрешении на получение местоположения. Кажется, этот параметр кэшируется, и я не знаю, как его сбросить.

Есть ли способ повторно запросить разрешение? Заранее спасибо!

if (navigator.geolocation) {                                            

        navigator.geolocation.getCurrentPosition(function(position) {       

            // Success Callback


        }, function(error) {
            //error Callback

        },{
                  //options
            });
     }else{
        //geolocation not available
     }

Ответы [ 2 ]

1 голос
/ 05 декабря 2012

Как сказал bgreater, это зависит от браузера.Но когда пользователь откажет в разрешении на получение ошибки местоположения, будет вызвана функция с объектом ошибки.Этот объект ошибки содержит код ошибки.Когда код ошибки равен 1, это означает, что пользователь отказывает в разрешении.

var errorTypes = {
    0: "Unknown error",
    1: "Permission denied by user",
    2: "Position is not available",
    3: "Request timed out" 
};

Я думаю, вы можете проверить этот код ошибки и отобразить некоторую информацию для пользователя.

1 голос
/ 02 июня 2011

Уверен, что это настройки браузера / устройства, сохраненные для каждого сайта.Я думаю, дело в том, что вы не можете сбросить это из скрипта, так как это в первую очередь победит точку подсказки.Я считаю, что единственный способ сбросить это изменить настройки в браузере / устройстве.

...