Web Storage로 local storage, session storage를 지원하고 있고
사용자 브라우저상에서 간단히 key/value쌍으로 저장할 수 있어 간편함.
표준 : http://www.w3.org/TR/webstorage/
MDN : https://developer.mozilla.org/en-US/docs/Web/API/Web_Storage_API
localStorage와 sessionStorage의 차이점은
sessionStorage는 브라우저가 열려서 닫히기 전까지 유지된다는 점이고
localStorage는 삭제 시점이 없어 거의 영구적(local에서 삭제 되기 전까지)으로 유지된다는 점이다.
Window.sessionStorage
: https://developer.mozilla.org/ko/docs/Web/API/Window/sessionStorage
Window.localStorage
: https://developer.mozilla.org/ko/docs/Web/API/Window/localStorage
Android WebView에서 localStorage 사용 설정
http://developer.android.com/reference/android/webkit/WebSettings.html
http://tutorials.jenkov.com/android/android-web-apps-using-android-webview.html#caching-web-resources-in-html5-local-storage
http://www.programering.com/a/MzN5QzMwATc.html
http://tutorials.jenkov.com/android/android-web-apps-using-android-webview.html#caching-web-resources-in-html5-local-storage
http://www.programering.com/a/MzN5QzMwATc.html
Android WebView API reference에서 좀 명시적으로 나와 있지 않아서
필요해 보이는 API를 다 호출 하게 되는 것 같음.
HTML5 Local Storage API 설정, 기본적으로 false로 되어 있음.
=> webview.getSettings().setDomStorageEnabled(true);
database storage API 사용 설정, 페이지 로드 전에 되어야 함.
=> settings.setDatabaseEnabled(true);
Application Cache API사용 설정, database path도 함께 설정 필요
=> settings.setAppCachePath(dir.getPath());
=> settings.setAppCacheEnabled(true);
롤리팝 부터는 WebView가 Platform 차원에서 관리 되던데
관련하여 API 사용이 변경되는 게 없는지 궁금함.
특히나 application cache 설정이 좀 바뀌지 않을까 생각되는데
자세한 내용은 못 찾겠음.
그래서 일단은 아래와 같이 사용..
WebSettings settings = webview.getSettings();
settings.setJavaScriptEnabled(true);
settings.setDomStorageEnabled(true);
settings.setDatabaseEnabled(true);
File dir = getCacheDir();
if (!dir.exists()) {
dir.mkdirs();
}
settings.setAppCachePath(dir.getPath());
settings.setAppCacheEnabled(true);
그 외 setAppCacheMaxSize() 호출 하던데,
API level 18에서 deprecated 되어 굳이 필요 없을 듯.
API level 18에서 deprecated 되어 굳이 필요 없을 듯.