0

我正在开发一个基于浏览器并专门针对移动浏览器的地理定位项目。我不会深入细节,但总体而言,该项目在项目的许多页面和部分中使用地理定位。问题似乎是,尽管总是在任何给定的浏览器上点击“接受”和“允许”,但当用户重新加载页面时,几乎每次都会提示他们重新启用位置身份验证。

这对我来说很奇怪,我去过带有地理位置的网站,它确实记得我允许它,即使在我在网站上的时间段内而不是总是如此。因此,我想知道是否需要做一些特殊的事情才能在我的项目中长时间存储此身份验证?

目前,我正在通过谷歌地图 API 使用基于 javascript 的地理定位,以及对非基于 ip 的位置的更新浏览器支持。我的项目由用户自行决定跟踪他们的位置,以便与他们相关的其他人可以看到他们在哪里,他们去过哪里,或者他们计划去哪里(如果他们输入了)。还有更多,但这是基础。从用户体验的角度来看,每次浏览器重新加载以重新验证位置时都必须提示我的用户是很烦人的。

因此,任何人都能够提供的任何建议,或有关如何处理此问题的见解将不胜感激。

4

1 回答 1

1

Cookie会话

在检测到用户地理位置后,您应该将其存储在 Cookie 中。来自服务器的每个请求都应该查看是否有一个 cookie 集(带有用户的位置)并对其采取行动。

过度简化的代码:

// get user location (via javascript)
navigator.geolocation.getCurrentPosition(function(position) 
{
  initialLocation = new google.maps.LatLng(position.coords.latitude,position.coords.longitude);
}

// ajax the server with the user location
$.post('ajax/set_user_location.php', initialLocation);

然后在服务器上抓取initialLocation并将其保存在 cookie 中。

于 2012-07-03T17:57:57.927 回答