Javascript地理位置缓存
我正在使用以下方法成功捕获用户的位置(移动浏览器):Javascript地理位置缓存,javascript,geolocation,Javascript,Geolocation,我正在使用以下方法成功捕获用户的位置(移动浏览器): if(navigator.geolocation){ navigator.geolocation.getCurrentPosition(handlePosition); } 功能手柄位置(pos){ //这会将lat/long传递给其他代码 } 这是可行的,但通常情况下浏览器似乎会缓存位置数据。调用此地理位置代码的页面会显示与用户位置相关的信息,因此用户可以移动(更改位置),页面会重新加载,但会使用以前的位置数据(显示不正确的数据)。有时
if(navigator.geolocation){
navigator.geolocation.getCurrentPosition(handlePosition);
}
功能手柄位置(pos){
//这会将lat/long传递给其他代码
}
这是可行的,但通常情况下浏览器似乎会缓存位置数据。调用此地理位置代码的页面会显示与用户位置相关的信息,因此用户可以移动(更改位置),页面会重新加载,但会使用以前的位置数据(显示不正确的数据)。有时页面必须刷新一次甚至两次才能使用新的位置数据
是否有人知道在每次执行脚本时强制代码获取并使用“最新”位置数据的方法
FWIW,我在iOS Safari(6.1)中遇到问题。我们还不能在Android上测试
感谢您的阅读和帮助。编辑:正如Oleksiy在回答中所写,地理定位API现在支持这一点。您可以添加
{maximumAge:0}
作为getCurrentPosition
的第三个选项参数。位置选项中还有一个超时和一个高精度选项,如中所述
您的导航器调用将更改为以下内容:
navigator.geolocation.getCurrentPosition(
手的位置,
(错误)=>{},
{maximumAge:0}
);
不,不行。除了示例中的代码之外,您无法控制浏览器的地理位置。html5地理位置api非常非常有限,这是一种痛苦。我也有一个问题,我是否可以问它是否已经获得了这个域名的许可,答案也是否定的
问题在于,api是在浏览器本身中实现的,对于这类函数来说,它不是端点
您可以做的是在js中创建一个数组来存储以前的位置,然后再根据该数组更新视图测试以查看是否有过时的位置。编辑:正如Oleksiy在回答中所写的,地理位置API现在支持这一点。您可以添加
{maximumAge:0}
作为getCurrentPosition
的第三个选项参数。位置选项中还有一个超时和一个高精度选项,如中所述
您的导航器调用将更改为以下内容:
navigator.geolocation.getCurrentPosition(
手的位置,
(错误)=>{},
{maximumAge:0}
);
不,不行。除了示例中的代码之外,您无法控制浏览器的地理位置。html5地理位置api非常非常有限,这是一种痛苦。我也有一个问题,我是否可以问它是否已经获得了这个域名的许可,答案也是否定的
问题在于,api是在浏览器本身中实现的,对于这类函数来说,它不是端点
您可以做的是在js中创建一个数组来存储以前的位置,然后再根据该数组更新视图测试,查看是否有过时的位置。您现在确实具备了此功能。 getCurrentPosition采用三个参数:成功、失败和选项 试试这个:
<script>
if ( navigator.geolocation ) {
navigator.geolocation.getCurrentPosition(handlePosition, (error)=>{}, {maximumAge:0});
}
function handlePosition(pos) {
//this passes lat/long to additional code
}
</script>
if(navigator.geolocation){
navigator.geolocation.getCurrentPosition(handlePosition,(error)=>{},{maximumAge:0});
}
功能手柄位置(pos){
//这会将lat/long传递给其他代码
}
您现在确实拥有此能力。
getCurrentPosition采用三个参数:成功、失败和选项
试试这个:
<script>
if ( navigator.geolocation ) {
navigator.geolocation.getCurrentPosition(handlePosition, (error)=>{}, {maximumAge:0});
}
function handlePosition(pos) {
//this passes lat/long to additional code
}
</script>
if(navigator.geolocation){
navigator.geolocation.getCurrentPosition(handlePosition,(error)=>{},{maximumAge:0});
}
功能手柄位置(pos){
//这会将lat/long传递给其他代码
}