Geolocation: phương thức watchPosition()

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.

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

Phương thức watchPosition() của giao diện Geolocation được dùng để đăng ký một hàm xử lý sẽ được gọi tự động mỗi khi vị trí của thiết bị thay đổi. Bạn cũng có thể, tùy chọn, chỉ định một hàm callback xử lý lỗi.

Lưu ý rằng ngoài việc yêu cầu một ngữ cảnh an toàn, tính năng này còn có thể bị chặn bởi Permissions-Policy geolocation, và cũng yêu cầu người dùng cấp quyền rõ ràng. Nếu cần, người dùng sẽ được nhắc khi phương thức này được gọi. Trạng thái quyền có thể được truy vấn bằng quyền người dùng geolocation trong Permissions API.

Cú pháp

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

Tham số

success

Một hàm callback nhận một đối tượng GeolocationPosition làm đối số đầu vào.

error Optional

Một hàm callback tùy chọn nhận một đối tượng GeolocationPositionError làm đối số đầu vào.

options Optional

Một đối tượng tùy chọn cung cấp các thiết lập cho việc theo dõi vị trí. Xem Geolocation.getCurrentPosition() để biết thêm chi tiết về các tùy chọn có thể có.

Giá trị trả về

Một ID số nguyên xác định hàm xử lý đã đăng ký. ID này có thể được truyền cho Geolocation.clearWatch() để hủy đăng ký hàm xử lý.

Ví dụ

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

Thông số kỹ thuật

Specification
Geolocation
# watchposition-method

Tương thích trình duyệt

Xem thêm