Spec-Zone.ru › Web APIs

Геолокация: метод watchPosition()

Базовая Широко распространена

Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна во всех браузерах с июля 2015 года.

  • Подробнее
  • Полная совместимость
  • Отправить отзыв

Защищённый контекст: Эта функция доступна только в защищённых контекстах (HTTPS), в некоторых или во всех поддерживающих браузерах.

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

Обратите внимание, что помимо требования защищённого контекста, эта функция может быть заблокирована политикой geolocation Permissions-Policy, и также требует явного разрешения пользователя. При необходимости пользователь будет запрошен о разрешении, когда вызывается этот метод. Состояние разрешения можно запросить с помощью свойства geolocation в API разрешений.

Синтаксис

watchPosition(success)
watchPosition(success, error)
watchPosition(success, error, options)

Параметры

success

Функция-обработчик, которая принимает объект GeolocationPosition в качестве входного параметра.

error Необязательный

Необязательная функция-обработчик, которая принимает объект GeolocationPositionError в качестве входного параметра.

options Необязательный

Необязательный объект, который предоставляет параметры настройки для отслеживания местоположения. Подробнее о возможных параметрах см. в Geolocation.getCurrentPosition().

Возвращаемое значение

Целое число ID, которое идентифицирует зарегистрированного обработчика. ID можно передать в Geolocation.clearWatch() для отмены регистрации обработчика.

Примеры

let id;
let target;
let options;

function success(pos) {
  const crd = pos.coords;

  if (target.latitude === crd.latitude && target.longitude === crd.longitude) {
    console.log("Congratulations, you reached the target");
    navigator.geolocation.clearWatch(id);
  }
}

function error(err) {
  console.error(`ERROR(${err.code}): ${err.message}`);
}

target = {
  latitude: 0,
  longitude: 0,
};

options = {
  enableHighAccuracy: false,
  timeout: 5000,
  maximumAge: 0,
};

id = navigator.geolocation.watchPosition(success, error, options);

Спецификации

Спецификация
Geolocation
# watchposition-method

Совместимость с браузерами

Рабочие столы Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
watchPosition 5 12 3.5 10.6 5 18 4 11 ≤3 1.0 ≤37

См. также

  • Использование API геолокации
  • Интерфейс, к которому он относится, Geolocation, и способ доступа к нему — Navigator.geolocation.
  • Обратная операция: Geolocation.clearWatch()
  • Аналогичный метод: Geolocation.getCurrentPosition()

© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/Geolocation/watchPosition

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API