我正在开发一个应用程序,根据用户浏览我的应用程序的“城市”显示一些结果。我只会使用此位置信息来显示一些结果,仅此而已。我阅读this并在我的应用中实施。
我把这段代码放到我的_header部分:
<%- unless @lat_lng %>
<script>
getGeoLocation();
</script>
<%- end %>
这个代码到application.js:
function getGeoLocation() {
navigator.geolocation.getCurrentPosition(setGeoCookie);
}
function setGeoCookie(position) {
var cookie_val = position.coords.latitude + "|" + position.coords.longitude;
document.cookie = "lat_lng=" + escape(cookie_val);
}
此代码到我的控制器索引操作:
if cookies().key?("lat_lng")
lat_lng = cookies[:lat_lng].split("|")
geo_localization = "#{lat_lng[0]},#{lat_lng[1]}"
query = Geocoder.search(geo_localization).first
@city = query.state
else
@city = "nocity"
end
但现在每次加载任何页面时,我都会再次读取cookie。我怎么能:
顺便说一句,我不熟悉javascript,但试图处理。
答案 0 :(得分:0)
您应该将已经解释过的cookie的信息添加到cookie本身。再向JavaScript添加一个条件,以便在此后检查此信息。
或者,您可以将此信息放入QueryString Url并从那里读取。
干杯,