HTML5 геолокация: переключение watchPosition без повторного запроса пользователя? - PullRequest
0 голосов
/ 21 июня 2011

Мое приложение HTML5 использует Google Maps и отслеживает пользователя с помощью navigator.geolocation.watchPosition, показывая его местоположение с маркером на карте.

У меня также есть кнопка переключения.Если пользователь нажимает кнопку «Выкл.», Я бы хотел прекратить отслеживать его с помощью watchPosition.

Пока это мой код:

    $("#loc-label").click(function(){
        if ($('#loc').is(':checked')) {
            navigator.geolocation.clearWatch(watchId);
            position_marker = null;
        } else {
            watchId = navigator.geolocation.watchPosition(geolocationWorked, geolocationFailed, {enableHighAccuracy:true, maximumAge:30000, timeout:27000});      
        }
    });

Однако, с этим кодом, когда пользователь переключает местоположение, он получает запрос браузера (по крайней мере, в Firefox), запрашивающийих, если они хотят поделиться своим местоположением.

Есть ли способ обойти это?В идеале я хотел бы только подсказать их один раз.

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

Спасибо!

Ответы [ 2 ]

0 голосов
/ 04 декабря 2012

Safari и Chrome (по крайней мере на Mac) имеют настройки, чтобы выбрать, следует ли спрашивать.Еще не нашел этого в Firefox;кажется, подсказывает все время.

0 голосов
/ 21 июня 2011

I думаю поведение зависит от устройства. При тестировании демо-версии на http://www.thedotproduct.org/experiments/geo/ на моем HTC Desire я получаю запрос только один раз, если не перезагрузить страницу.

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

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