Geolocationï¼watchPosition() æ¹æ³
Baseline
Widely available
This feature is well established and works across many devices and browser versions. Itâs been available across browsers since 2015å¹´7æ.
Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.
Geolocation ä»é¢ç watchPosition() æ¹æ³ç¨æ¼è¨»åä¸åèçå½å¼ï¼è©²å½å¼æå¨è£ç½®ä½ç½®æ¯æ¬¡è®æ´æèªå被å¼å«ãä½ ä¹å¯ä»¥é¸ææ§å°æå®ä¸åé¯èª¤èçåå¼å½å¼ã
è«æ³¨æï¼é¤äºéè¦å®å
¨ä¸ä¸æä¹å¤ï¼æ¤åè½ä¹å¯è½è¢« geolocation Permissions-Policy 黿ï¼ä¸¦ä¸ééè¦ä½¿ç¨è
æç¢ºæäºæ¬éã妿éè¦ï¼ç¶å¼å«æ¤æ¹æ³æï¼å°ææç¤ºä½¿ç¨è
ãæ¬éçæ
å¯ä»¥ä½¿ç¨æ¬é API ä¸ç geolocation 使ç¨è
æ¬é便¥è©¢ã
èªæ³
watchPosition(success)
watchPosition(success, error)
watchPosition(success, error, options)
忏
success-
ä¸ååå¼å½å¼ï¼å®æ¥åä¸å
GeolocationPositionç©ä»¶ä½çºè¼¸å ¥åæ¸ã error鏿æ§-
ä¸åå¯é¸çåå¼å½å¼ï¼å®æ¥åä¸å
GeolocationPositionErrorç©ä»¶ä½çºè¼¸å ¥åæ¸ã options鏿æ§-
ä¸åå¯é¸çç©ä»¶ï¼çºä½ç½®ç£æ§æä¾çµæ é¸é ãæéå¯è½é¸é çæ´å¤è©³ç´°è¨æ¯ï¼åè¦
Geolocation.getCurrentPosition()ã
åå³å¼
ä¸åæ´æ¸ IDï¼ç¨æ¼èå¥å·²è¨»åçèçå½å¼ãæ¤ ID å¯ä»¥å³é給 Geolocation.clearWatch() ä»¥åæ¶è¨»å該èçå½å¼ã
ç¯ä¾
let id;
let target;
let options;
function success(pos) {
const crd = pos.coords;
if (target.latitude === crd.latitude && target.longitude === crd.longitude) {
console.log("æåï¼ä½ å·²å°éç®æ¨");
navigator.geolocation.clearWatch(id);
}
}
function error(err) {
console.error(`é¯èª¤ï¼${err.code}ï¼ï¼${err.message}`);
}
target = {
latitude: 0,
longitude: 0,
};
options = {
enableHighAccuracy: false,
timeout: 5000,
maximumAge: 0,
};
id = navigator.geolocation.watchPosition(success, error, options);
è¦ç¯
| Specification |
|---|
| Geolocation > # watchposition-method > |
ç覽å¨ç¸å®¹æ§
åè¦
- ä½¿ç¨ Geolocation API
- å
¶æå±¬çä»é¢
Geolocationï¼ä»¥åååå®çæ¹å¼ââNavigator.geolocationã - ç¸åçæä½ï¼
Geolocation.clearWatch() - ä¸åé¡ä¼¼çæ¹æ³ï¼
Geolocation.getCurrentPosition()