html5 геолокации API: знать, когда пользователь запрашивает разрешение и когда браузер пытается получить позицию - PullRequest
1 голос
/ 06 июля 2011

Мне интересно, позволяет ли API-интерфейс геолокации html5 (событие или метод) сообщать разницу, когда у пользователя запрашивается разрешение поделиться своим местоположением и когда (будучи предоставленным разрешением) браузер пытаетсяполучить такое местоположение.

Я хочу сделать следующее:

  1. Предоставить пользователю возможность поделиться своим местоположением с моим сайтом.
  2. Когда браузер пользователя запрашиваетему для разрешения, покажите пользователю небольшую помощь с тем, что делать на «панели запроса» браузера.
  3. Если пользователь дает разрешение, покажите небольшой знак загрузки с чем-то вроде «... мы пытаемсячтобы узнать ваше местоположение, повесьте ".

Это важно, потому что:

  • Всегда полезно помогать любителям.
  • По крайней мере, вFirefox (без GoogleGears), занимает много времени, чтобы получить позицию пользователя.
  • Если пользователь сохраняет свой ответ на этот вопрос в своих предпочтениях, нет необходимости снова показывать помощь при попыткеи местоположение.

Это то, что я делаю сейчас, довольно просто:

showHelp();
navigator.geolocation.getCurrentPosition(permissionGranted, permissionDenied);
hideHelp();

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

Спасибо за помощь.

1 Ответ

0 голосов
/ 06 июля 2011

Попробуйте добавить 'hideHelp' в один или оба ваших обратных вызова.см. ниже:

$(document).ready(function () {
    sample.showHelp();
    navigator.geolocation.getCurrentPosition(sample.getPosSuccess, sample.getPosFail);
});

var sample = {
    getPosSuccess: function () {
        sample.hideHelp();
    },
    getPosFail: function () { alert('#fail'); },
    showHelp : function () { 
          // your code here
    },
    hideHelp : function () { 
         // your code here
    }

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