2013. 10. 25.

안드로이드 하이브리드 앱 폰갭(phonegap)에서 쿠키 사용이 안된다.

저번 포스팅에서 폰갭 플랫폼에서 하이브리드 앱을 개발할때 쿠키를 사용하기 위해, 어플 단에서 자바 코드를 추가 하는 방법을 적었다. 헌데, 그렇게 해도 달라지는게 없더라고 글을 마무리 했다. 찾아보고 찾아보고 찾아보니 이유가 있더라.

저번 포스팅의 방식은 원래 작동 해야 하는게 맞다.
안드로이드 2.+ 버전에서 작동 한다고 한다.
허나, 안드로이드 4.+ 버전에선 같은 방식으로 처리해도 쿠키 사용이 되지 않는다.

폰갭이 안드로이드 버전에 맞춰서 따라가질 못하는 건지, 아니면 폰갭의 버그인지, 아니면 안드로이드 자체에 변화가 생긴건지는 자세하게 모르겠다만, 해외 블로그들을 읽을 때마다 모두 다 같은 소리를 한다.

쿠키 말고 localStorage를 써보란다.
http://community.phonegap.com/nitobi/topics/using_cookies_does_not_seem_to_work
http://stackoverflow.com/questions/3709315/phonegap-cookie-based-authentication-php-not-working-webview
http://stackoverflow.com/questions/16463188/cookie-based-authentication-on-phonegap
https://groups.google.com/forum/#!topic/phonegap/brNhSI7oTU4
https://groups.google.com/forum/#!topic/phonegap/wnSPTDRWglU
http://stackoverflow.com/questions/11392364/how-to-store-cookies-values-in-an-android-device-using-phonegap-and-jquery-mobil

쿠키랑 성격이 비슷한 녀석이다. 크로스 브라우징 걱정도 없고, 아주 쓸만한 녀석이다.
http://www.w3schools.com/html/html5_webstorage.asp

사용법 또한 아주 간단한게 마음에 쏙 든다.
위 링크에서 나와있는 사용 예제는 아래와 같다.

<script language="javascript">

localStorage.lastname="Smith";
document.getElementById("result").innerHTML="Last name: " + localStorage.lastname;

</script>

폰갭 API 문서에도 설명이 나와 있다.
http://docs.phonegap.com/en/2.2.0/cordova_storage_storage.md.html#Storage

<script language="javascript">

//값 설정
window.localStorage.setItem("key", "value");
//가져오고
var value = window.localStorage.getItem("key");
//지워주고
window.localStorage.removeItem("key");
window.localStorage.clear();

</script>

데스크탑 환경에서( 폰갭 라이브러리 링크 안했는데 ) 문제 없이 돌아 간다.
그냥 모양새만 다른거고, HTML5 기본으로 제공하는 건가보다.
폰갭에서 따로 W3C Storage를 사용 가능하게 함수를 제공해 주는게 아니고 설명만 적어 놓은 거구나.

아주 쓸만한 녀석이지만, 클라이언트 쪽 데이터라 살짝 귀찮아 진다.
PHP 환경을 생각 해보자.쿠키나 세션이라면 $_COOKIE['...'] 등으로 서버단에서 처리해서 결과를 낼 수 있다만 이 경우라면 ajax등을 이용하여 필요한 처리를 해야한다.

http://stackoverflow.com/questions/3855337/php-localstorage

조만간에 머리가 크게 한번 지끈 거릴 것 같은 슬픈 예감이 든다.


댓글 없음 :

댓글 쓰기