我正在开发一个应用程序,通过该应用程序,我需要允许用户更改更新自己位置的频率,而不是对其进行硬编码。

以下是我尝试过的内容,但是由于某种原因出现了超时错误。有没有人遇到过类似的情况?还是下面的代码有问题?

watchID = navigator.geolocation.watchPosition(win, fail, { maximumAge: 10000, timeout: (parseFloat(userfreq)*1000), enableHighAccuracy: true });


userfreq是从数据库加载的值,并且是以秒为单位的值,例如0.25秒。因此,我将其乘以1000以将其更改为毫秒。

最佳答案

如果收到Timeout expired位置错误,则将watchPosition多次调用(使用相同的变量),或者在其他地方使用另一个变量多次调用watchPosition。

检查前两个屏幕截图,如果使用相同变量或不同变量两次调用watchPosition,则会引发错误。




要解决此问题,请将clearWatch与该变量一起使用。

以下屏幕截图显示了clearWatch之后的地理位置结果

07-25 23:03