Геолокация: метод 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