From 33058f2b292b3a581333bdfb21b8f671898c5060 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:40:17 -0500 Subject: initial commit --- .../web/api/geolocation/watchposition/index.html | 145 +++++++++++++++++++++ 1 file changed, 145 insertions(+) create mode 100644 files/zh-cn/web/api/geolocation/watchposition/index.html (limited to 'files/zh-cn/web/api/geolocation/watchposition') diff --git a/files/zh-cn/web/api/geolocation/watchposition/index.html b/files/zh-cn/web/api/geolocation/watchposition/index.html new file mode 100644 index 0000000000..e2170f685f --- /dev/null +++ b/files/zh-cn/web/api/geolocation/watchposition/index.html @@ -0,0 +1,145 @@ +--- +title: Geolocation.watchPosition() +slug: Web/API/Geolocation/watchPosition +translation_of: Web/API/Geolocation/watchPosition +--- +

{{ APIref("Geolocation API") }}

+ +

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

+ +

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

+ +

语法

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

参数

+ +
+
success
+
成功时候的回调函数, 同时传入一个 {{domxref("Position")}} 对象当作参数。
+
error {{optional_inline}}
+
失败时候的回调函数,可选, 会传入一个 {{domxref("PositionError")}} 对象当作参数。
+
options {{optional_inline}}
+
一个可选的 {{domxref("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 ,以便在屏幕关闭的时候,程序可以运行在后台以继续监听位置的变化。

+ +

规范

+ + + + + + + + + + + + + + + + +
规范状态说明
{{SpecName('Geolocation', '#watch-position', 'Geolocation.watchPosition()')}}{{Spec2('Geolocation')}}Initial specification.
+ +

浏览器兼容性

+ +

{{ CompatibilityTable() }}

+ +
+ + + + + + + + + + + + + + + + + + + +
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support5{{CompatGeckoDesktop("1.9.1")}}910.60
+ Removed in 15.0
+ Reintroduced in 16.0
5
+
+ +
+ + + + + + + + + + + + + + + + + + + + + +
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatUnknown()}}{{CompatUnknown()}}{{CompatGeckoMobile("4")}}{{CompatUnknown()}}10.60{{CompatUnknown()}}
+
+ +

 

+ +

相关链接

+ + -- cgit v1.2.3-54-g00ecf