2015-01-20 2 views
3

나는 너무 오랫동안이 작업을하기 위해 애 쓰고 있습니다. 방금 PhoneGap/Cordova에 들어 오기 시작했습니다. 데모 응용 프로그램을 실행하고 모든 공식 플러그인을 설치하고이 SQLite 플러그인을 추가하여 다음 작업을 시작하십시오. https://github.com/brodysoft/Cordova-SQLitePluginPhoneGap - 미리 패키지화 된 sqlite 데이터베이스 읽기

그러나 플러그인에서 사전 패키지 데이터베이스를 읽길 원합니다. 간단히 말해, 오프라인으로 작동하는 앱을 만들고 SQLite 데이터베이스를 처음 실행할 때 다운로드 할 필요가 없습니다.

저는 오랫동안 Android 용으로 개발 해왔고 해결책은 assets 폴더에 읽기 전용 데이터베이스 파일을 배포하고 데이터베이스 파일을 다른 폴더에 복사하여 읽기/내가 원하는대로 써라.

나는 약간의 연구를했고 PhoneGap과 같아야한다는 것을 깨달았습니다. 바이너리 SQLite 데이터베이스를 어딘가에 배치하면 빌드시 앱과 함께 패키징됩니다. 그런 다음 여기에 링크 된 SQLite 플러그인으로로드하십시오.

마지막으로, 질문! 앱과 함께 패키지 된 파일을 읽을 수 있으려면 정확한 단계는 무엇입니까?

  1. 응용 프로그램에 패키지가 포함되도록하려면 이진 파일을 어디에 두어야합니까?
  2. 정확히 어떻게 File API를 초기화해야합니까? window.requestFileSystem을 사용하여 영구 저장 장치를 요청해야합니까? 또는 어떤 디렉토리()를 DirectoryEntry으로 가져 오려면 window.resolveLocalFileSystemURL을 사용해야합니까? 그렇다면 사용해야 할 정확한 매개 변수는 무엇입니까? 나는 이것을 주로 언급하고 있습니다 : https://github.com/apache/cordova-plugin-file/blob/master/doc/index.md
  3. 어떻게 패키지 파일을 읽을 수 있습니까? 올바른 폴더에 window.resolveLocalFileSystemURL을 사용하고 있습니까? 그렇다면 매개 변수는 무엇이되어야합니까?
  4. 이 시점에 이르면 파일 복사가 정상적으로 작동합니다. 읽기 전용 cordova.file.applicationDirectory에서 읽기/쓰기 인 cordova.file.dataDirectory으로 복사하십시오. 권리?

나는 기본적인 질문일지도 모르지만, 수많은 시도가 성공하지 못했고,이를 자세히 설명하는 자습서를 찾지 못했습니다. 또한 설명서가 부족한 것처럼 보입니다.

WebSQL 데이터베이스로 작업하고로드 값이 INSERT 인 s ***로드를 사용하는 DB는 실행 가능한 옵션이 아니며 수천 개의 레코드가 있습니다.

사전에 도움을 주셔서 감사합니다. 두통 또는 두 가지를 저축 할 수 있습니다.

답변

3

현재 Cordova의 표준 SQLite 플러그인은 Pre-populated Databases을 지원하며 데이터베이스 파일을 www에서 복사하여 올바른 디렉토리에 넣습니다. Android 및 iOS도 지원하므로 플랫폼마다 다른 로직을 사용할 필요가 없습니다.

var db = window.sqlitePlugin.openDatabase({ 
    name: "my.db", 
    createFromLocation: 1 
}); 

아이폰 OS를 들어, 처음 www을 확인하고 파일이 존재하는 경우, 그것은에 복사합니다 : 데이터베이스를 열 때

, 당신은이 같은 createFromLocation: 1를 사용하여 미리 채워집니다 지정할 수 있습니다 Documents. iCloud에 의해 백업된다는 것을 명심하십시오. iCloud에서 제외 시키려면 을 openDatabase에 추가하면 데이터베이스가 Library/LocalDatabase에 저장됩니다.

UPDATE (2016)

더 이상 dB 사전 인구가 지원하지 않는 원래 코르도바 - sqlite가 저장 프로젝트.

그러나이 기능은 동일한 제작자의 다른 프로젝트로 방금 옮겼습니다. 이제이 목적으로 Cordova-sqlite-ext을 사용하십시오.

+0

2017 현재 Cordova-sqlite-storage는 사전 채워진 DB를 지원하지 않습니다. 또한 파일을 Ionic2 앱에 넣을 위치를 알고 계십니까? –