2014-10-20 4 views
1

우리는 Cordova에서 Xamarin.forms로 응용 프로그램을 포팅합니다. 이제는 구 버전이 localStorage에 유지하고있는 데이터를 복원하는 것이 중요합니다.이전 cordova 앱에서 localStorage 데이터 복원

저는 Xamarin에서 WebView를 만든 다음 필요한 localStorage 필드를 표시하려고 시도했지만 완전히 비어있는 것 같습니다. 그러나 이전 코드 도바 응용 프로그램을 다시 설치하면 여전히 데이터에 액세스 할 수 있으므로 확실히 저장되고 Xamarin 버전 설치가 유지됩니다.

Cordova 설명서에는 일부 플랫폼에서 자체 localStorage 구현을 수행하는 것에 대해 언급되어 있지만 어떤 방법으로 실행되는지는 분명하지 않습니다.

기본적으로 안드로이드와 iOS에서 localStorage 데이터를 안정적으로 복원 할 수있는 방법을 찾고 있습니다. xamarin.forms 응용 프로그램

  • 에서

    • 임베드 코르도바 로컬 스토리지를하고있다 코르도바의 일부를 추출하고 일반 웹보기 작업을 만들려고 : 저는 현재

      를 두 방향으로 생각할 수

  • 답변

    0

    iOS의 경우 로컬 저장소 데이터가 실제로 라이브러리/WebKit/LocalStorage/file__0.localstorage에 있음을 알게되었습니다. 그러나 Xamarin의 웹 뷰가 어떤 이유로 데이터를 사용할 수 없게 만듭니다. 아마 당신은 그것을 얻을 수있는 (나는 그것이 기본 URL의 차이와 관련 있다고 가정합니다) 약간의 손재수로.

    데이터가 필요하므로 sqlite.NET을 사용하여 localstorage 파일을 직접 열고 그 방식으로 데이터를 가져 왔습니다. (참고 : 유니 코드의 블롭으로 저장되므로 예상대로 UTF-8이 아님)

    Android의 경우 매우 유사하지만 어떤 경우에는 데이터가 UTF-8이므로 일부 검색이 필요했습니다. (제 경우 : 두 가지 방법으로 변환하고 결과 값이 유효한 JSON과 비슷한지 확인)

    0

    할 수 없습니다. 다른 앱마다 다른 메타 데이터. 그렇게하는 것은 불가능합니다. 각 로컬 저장소의 앱 ID를 기반으로합니다.

    +0

    동일한 응용 프로그램이므로 다른 버전이므로 응용 프로그램 ID는 동일하게 유지됩니다. – Michielvv

    +0

    여전히 다른 버전 관리를 수행 할 수 없습니다. –

    +0

    그 기반은 무엇입니까? 앱의 새로운 코드바 버전이 이전 버전에 저장된 데이터를 읽을 수 있으므로 데이터가 앱에 액세스 할 수있는 곳에 저장됩니다. 새 버전을 설치하면 삭제되지 않습니다. – Michielvv

    관련 문제