Как вызвать функцию, когда пользователь разрешает или запрещает доступ к «Физическому расположению»? - PullRequest
7 голосов
/ 18 сентября 2011

Мое приложение работает на jquery mobile и использует геолокацию.

После того, как мое приложение попытается определить местоположение пользователя, браузер (Chrome) предложит пользователю:

Example.com хочет отслеживать ваше физическое местоположение [разрешить] [отказать]

Моя цель:

  1. Если пользователь нажимает «Разрешить», вызывается функция 1 (используется местоположение по приложению).
  2. Если пользователь нажимает «Запретить», вызывается функция 2 (адресная форма появляется).

Как связать функцию с событием, которое происходит (если есть), когда пользователь нажимает кнопку «Разрешить» или «Запретить»?

Ответы [ 2 ]

15 голосов
/ 18 сентября 2011

Функция getCurrentPosition принимает два аргумента функции.Черт возьми, первый выполняется, когда вы разрешаете, а другой - когда вы отказываете!

Документация

http://jsfiddle.net/pimvdb/QbRHg/

navigator.geolocation.getCurrentPosition(function(position) {
    alert('allow');
}, function() {
    alert('deny');
});
0 голосов
/ 21 мая 2018

Ссылка на документы

function handlePermission() { navigator.permissions.query({name:'geolocation'}).then(function(result) {
if (result.state == 'granted') {
  report(result.state);
  geoBtn.style.display = 'none';
} else if (result.state == 'prompt') {
  report(result.state);
  geoBtn.style.display = 'none';
  navigator.geolocation.getCurrentPosition(revealPosition,positionDenied,geoSettings);
} else if (result.state == 'denied') {
  report(result.state);
  geoBtn.style.display = 'inline';
}
result.onchange = function() {
  report(result.state);}});}function report(state) {
 console.log('Permission ' + state);}

Надеюсь, это сработает.

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