我想从服务器下载数据库文件并在apk中使用它。
我在&#c; cordova.file.dataDirectory'下载了该文件。该文件已在所需位置成功下载,但在window.plugins.sqlDB.copy()函数中,应用程序崩溃并显示消息。
不幸的是申请已停止。
在数据库目录中创建的命名文件仅包含' android_metadata'表
我使用的代码:
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');
}
}
请帮忙。
答案 0 :(得分:1)
您无法写入Cordova应用程序中的www
目录 - 它是只读的。
copy method个cordova-plugin-dbcopy州的文档:
此方法允许您从www目录复制数据库。
即。它允许您将现有数据库从复制到www目录到另一个目录,例如由cordova.file.dataDirectory