我们正在使用navigator.geolocation.getCurrentPosition()
来获取用户的当前位置。该函数有三个参数:
如果用户已在其移动设备(或桌面浏览器)中关闭了位置共享,则将执行第二个回调功能。
在这种情况下,我们会向用户发送一条警告消息,要求他们启用位置共享。
我们发现的问题是,如果他们然后去做,然后回到网站并尝试再次点击链接,浏览器似乎已缓存getCurrentPosition()
的结果,并执行第二次回调。
如果他们在更新了位置设置后刷新了网页,那就没关系了。但是,我不确定我们何时可以检测到他们何时重新启用了位置共享?
我们是否有任何解决办法阻止getCurrentPosition()
缓存不成功的响应? 也许使用我也尝试过使用watchPosition,但这也有同样的问题;当用户更新其位置共享设置时,它不会自动更新。watchPosition()
?
<a href="" id="clickme">Click Me</a>
$(document).ready(function() {
$('#clickme').on('click', function() {
navigator.geolocation.getCurrentPosition(
function() {
console.log('success');
},
function(error) {
alert('you should enable location sharing');
console.log('failure');
},
{
timeout: 5000,
maximumAge: 0,
enableHighAccuracy: false
}
);
return false;
});
});
您可以在JSFiddle here上查看此代码。