0
私のアプリを閲覧している「都市」に応じていくつかの結果を表示するアプリを開発しています。私はいくつかの結果を表示するためにのみ、この位置情報を使用します。私はthisを読んで、私のアプリに実装しました。 application.jsにブラウザで一度だけクッキーを読む
<%- unless @lat_lng %>
<script>
getGeoLocation();
</script>
<%- end %>
このコード:
私は部分的に私_headerにこのコードを入れ
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);
}
と私のコントローラのindexアクションにこのコード:
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を作成して場所を探し、ロケーションデータを使ってページコンテンツを再ロードします(ajaxやsomethngを使用)
- ユーザーがブラウザで自分のアプリケーションページを閉じるまでページが読み込まれるたびにCookieを読み込まない。
ところで、私はjavascriptに慣れていませんが、処理しようとしています。