2012-03-12 5 views
17

PhoneGap에서 작동하는 내 앱에서 하나의 값을 저장하기 위해 localstorage를 사용했지만 Apple에서 새 iOS 5.1을 출시하면 내 앱이 값을 저장하지 않습니다.Phonegap iOS 5.1 및 localStorage

아무도이 문제를 해결하는 방법을 알고 있습니까?

대단히 감사합니다!

편집 :

window.localStorage.setItem("login", $('#login').val());

내가 값을 저장을 위해 사용하고, 값 읽기 내가 그것을 사용 :

function onDeviceReady() { 
    var login = window.localStorage.getItem("login"); 

    if (login != null) { 
     $('#login').val(login); 
    } 
} 

그러나 때를 내가 사용하던 코드를 삽입 응용 프로그램을 닫으면 값이 저장되지 않습니다.

+0

코드가 있습니까? –

+0

나는 포스트를 편집한다 :) 고마워! – chemitaxis

답변

23

phonegap 그룹에이 문제에 관해 언급 한 큰 스레드가있었습니다. 기본적으로 localStorage는 임시 항목으로 취급되므로 언제든지 삭제할 수 있습니다. 직장에서 똑똑한 사람들이 두려워하지 마십시오! 여기 https://groups.google.com/forum/?fromgroups#!topic/phonegap/RJC2qA9sDnw

코드입니다 - -

여기 스레드의에서 iOS 5에서 http://pastebin.com/5881768B

+0

여전히 PhoneGap 3에서 작동합니까? –

+1

@ScottC 예. 패치가 3.0에 추가되었으므로 이제 더 이상 할 필요가 없습니다. –

8

, 로컬 스토리지는 애플이 기본적으로 지속되었다. iOS 5.1에서 localstorage가 임시 폴더로 만들어져 스토리지가 제한 될 때마다 OS에서 삭제할 수있었습니다. iOS 6에서 localstorage는 설정에 플래그가있는 선택적으로 영구 폴더로 지정되었습니다.

PhoneGap 2.0은 iOS 5.1을 대상으로했으며 iOS가 아니더라도 지속성을 제공하는 플러그인 메커니즘을 제공했습니다.

iOS 6 및 phonegap 2.1에서는 iOS 버전이 5.1 인 경우에만 플러그인을 사용하고 폴더를 유지하기위한 iOS 기본 메커니즘으로 되돌아갑니다.

그러나 iOS 6에는 localstorage 폴더가 처음 삭제되면 데이터가 저장되는 버그가 있습니다. https://issues.apache.org/jira/browse/CB-1535 버그 보고서에도 패치가 있습니다. 그러나 아직 PhoneGap 릴리스 버전의 일부가 될 예정은 아닙니다. 패치를 수동으로 적용해야합니다.

+0

사용자가 iOS 5.1을 사용하는 경우에도 최신 버전의 PhoneGap에서 사용할 수 있습니까? LocalStorage는 패치와 함께 계속 유지됩니까? – jocull