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
watchPosition(success)
watchPosition(success, error)
watchPosition(success, error, options)
Tham số
success-
Một hàm callback nhận một đối tượng
GeolocationPositionlàm đối số đầu vào. errorOptional-
Một hàm callback tùy chọn nhận một đối tượng
GeolocationPositionErrorlàm đối số đầu vào. optionsOptional-
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ụ
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
- Sử dụng Geolocation API
- Giao diện mà nó thuộc về,
Geolocation, và cách truy cập nó -Navigator.geolocation. - Thao tác ngược lại:
Geolocation.clearWatch() - Một phương thức tương tự:
Geolocation.getCurrentPosition()