Geolocation.watchPosition() 用于注册监听器,在设备的地理位置发生改变的时候自动被调用。也可以选择特定的错误处理函数。

该方法会返回一个 ID,如要取消监听可以通过  Geolocation.clearWatch() 传入该 ID 实现取消的目的。

语法

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

参数

success
成功时候的回调函数, 同时传入一个 Position 对象当作参数。
error 可选
失败时候的回调函数,可选, 会传入一个 PositionError 对象当作参数。
options 可选
一个可选的 PositionOptions 对象。

示例

var id, target, options;

function success(pos) {
  var 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.warn('ERROR(' + err.code + '): ' + err.message);
}

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

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

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

注意

如果你的应用程序运行在 firefox OS 上,请参考下 geolocation wake lock ,以便在屏幕关闭的时候,程序可以运行在后台以继续监听位置的变化。

规范

规范 状态 说明
Geolocation API
Geolocation.watchPosition()
Recommendation Initial specification.

浏览器兼容性

We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help!

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
Basic support 5 3.5 (1.9.1) 9 10.60
Removed in 15.0
Reintroduced in 16.0
5
Feature Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support ? ? 4.0 (4) ? 10.60 ?

 

相关链接

文档标签和贡献者

此页面的贡献者: Cattla
最后编辑者: Cattla,