2017-02-20 7 views
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 

하지만 이제는 페이지가로드 될 때마다 쿠키를 다시 읽습니다. 쿠키가 존재하는 경우

  • , 첫 페이지로드에 존재

    • 찾는 경우는, 위치 정보없이 페이지의 내용을로드하지 않는 경우, 위치를
    • 읽기 : I 수있는 방법.
    • 사용자가 위치 요청을 허용 한 후 쿠키를 만들고 위치를 찾고 위치 데이터로 페이지 콘텐츠를 다시로드하십시오 (ajax 또는 somethng 사용)
    • 사용자가 브라우저에서 내 앱 페이지를 닫을 때까지 동일한 위치 사용 페이지가로드 될 때마다 쿠키를 읽지 않습니다.

    그런데 저는 자바 스크립트에 익숙하지 않지만 처리하려고합니다.

  • 답변

    0

    아마도 쿠키가 이미 해석 된 정보를 쿠키 자체에 추가해야합니다. 나중에이 정보를 확인하는 JavaScript에 하나 이상의 조건을 추가하십시오.

    다른 방법으로이 정보를 QueryString URL에 넣고 거기에서 읽을 수 있습니다.

    건배,