首页 > 解决方案 > 为什么使用 JavaScript 在我的 PWA 上重复该位置?

问题描述

我在获取 PWA 用户的位置时遇到了问题。正在拍摄的位置被重复并且没有被更新。

$("#storeLocation").click(function () {
  navigator.geolocation.getCurrentPosition(
    function (e) {
      a = e.coords.latitude + "," + e.coords.longitude; 

      // HERE I STORE THE COORDS IN MY DATABASE
    },
    { enableHighAccuracy: true, timeout: Infinity, maximumAge: 0 }
  );
});

该按钮正在工作,因为我可以看到当我单击它时它正在存储位置,但始终存储相同的位置。

标签: javascriptjquerygeolocationprogressive-web-apps

解决方案


如果您想持续监控用户的位置,请使用 Geolocation API 方法,watchPosition(). 它以相同的方式工作,除了它会随着用户位置的变化或变得更准确而多次触发。

$("#storeLocation").click(() => {
  const posOpts = { enableHighAccuracy: true, timeout: Infinity, maximumAge: 0 };
  navigator.geolocation.watchPosition((e) => {
    const position = a = e.coords.latitude + "," + e.coords.longitude;
    // Store position here
  }, posOpts);
});

推荐阅读