Geolocation: watchPosition() Methode

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.

Die watchPosition()-Methode der Geolocation-Schnittstelle dient zur Registrierung einer Handlerfunktion, die automatisch aufgerufen wird, jedes Mal wenn sich die Position des Geräts ändert. Optional können Sie auch eine Fehlerbehandlungs-Callback-Funktion angeben.

Beachten Sie, dass diese Funktion zusätzlich zu einem sicheren Kontext durch die geolocation Permissions-Policy blockiert werden kann und zudem die ausdrückliche Erlaubnis des Benutzers erforderlich ist. Falls nötig, wird der Benutzer aufgefordert, wenn diese Methode aufgerufen wird. Der Berechtigungsstatus kann mit der geolocation-Benutzerberechtigung in der Permissions API abgefragt werden.

Syntax

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

Parameter

success

Eine Callback-Funktion, die ein GeolocationPosition-Objekt als Eingabeparameter akzeptiert.

error Optional

Eine optionale Callback-Funktion, die ein GeolocationPositionError-Objekt als Eingabeparameter akzeptiert.

options Optional

Ein optionales Objekt, das Konfigurationsoptionen für das Positions-Tracking bereitstellt. Weitere Details zu möglichen Optionen finden Sie unter Geolocation.getCurrentPosition().

Rückgabewert

Eine ganzzahlige ID, die den registrierten Handler identifiziert. Diese ID kann an die Geolocation.clearWatch() übergeben werden, um den Handler zu deregistrieren.

Beispiele

js
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);

Spezifikationen

Specification
Geolocation
# watchposition-method

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch