サーバーからデータベースファイルをダウンロードし、apkで使用します。dataDirectoryのデータベースファイルをCordovaのwwwフォルダにコピーするにはどうすればよいですか?
私は 'cordova.file.dataDirectory'にファイルをダウンロードしました。ファイルは必要な場所に正常にダウンロードされましたが、window.plugins.sqlDB.copy()関数でアプリケーションがクラッシュしてメッセージを表示しました。
残念ながらアプリケーションが停止しました。助けてください
var url = encodeURI("my server path"); var store = cordova.file.dataDirectory; var fileName = "Sample"; window.resolveLocalFileSystemURL(store + fileName, appStart, downloadAsset); function downloadAsset() { var fileTransfer = new FileTransfer(); fileTransfer.download(url, store+fileName,function (entry) { if (navigator.userAgent.match(/(iPhone|iPod|iPad|Android|BlackBerry|IEMobile)/)) { window.plugins.sqlDB.copy("Sample", 0, copysuccess, copyerror); } function copysuccess() { //open db and run your queries //app.db = window.sqlitePlugin.openDatabase({ name: "Sample" }); } function copyerror(e) { //db already exists or problem in copying the db file. Check the Log. //app.db = window.sqlitePlugin.openDatabase({ name: "Sample" }); } }, function (err) { alert(JSON.stringify(err)); }); } function appStart() { alert('file available'); } }
:のみ 'android_metadata' テーブルを持つデータベースのディレクトリに作成されたファイル
私が使用したコード名前
。
私はfileTransfer.download()メソッドを使用してこの問題を解決しました。成功関数については、app.db = window.sqlitePlugin.openDatabase({name: "Sample"});でコードを変更しました。代わりに 'window.plugins.sqlDB.copy( "Sample"、0、copysuccess、copyerror);' – Prajakta
返信いただきありがとうございます@DaveAlden – Prajakta