Android 如何将数据库文件从dataDirectory复制到Cordova中的www文件夹?
我想从服务器下载一个数据库文件,并在apk中使用它 我在“cordova.file.dataDirectory”下载了这个文件。文件已在所需位置成功下载,但在window.plugins.sqlDB.copy()函数中,应用程序崩溃并显示消息 不幸的是,应用程序已停止 在数据库目录中创建的命名文件仅包含“android_元数据”表 我使用的代码是:Android 如何将数据库文件从dataDirectory复制到Cordova中的www文件夹?,android,cordova,Android,Cordova,我想从服务器下载一个数据库文件,并在apk中使用它 我在“cordova.file.dataDirectory”下载了这个文件。文件已在所需位置成功下载,但在window.plugins.sqlDB.copy()函数中,应用程序崩溃并显示消息 不幸的是,应用程序已停止 在数据库目录中创建的命名文件仅包含“android_元数据”表 我使用的代码是: var url = encodeURI("my server path"); var store = cordova.file.dataDirect
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');
}
}
请帮助。您不能在Cordova应用程序中写入
www
目录-它是只读的
各国代表团的文件:
此方法允许您从www目录复制数据库
i、 e.它允许您将现有数据库从www目录复制到另一个目录,例如平台特定的应用程序持久存储位置,由
cordova.file.dataDirectory
指示。我使用fileTransfer.download()方法解决了这个问题。在success函数中,我用app.db=window.sqlitePlugin.openDatabase({name:“Sample”})更改了代码;而不是“window.plugins.sqlDB.copy(“Sample”,0,copycessfuce,copycerror);”谢谢@DaveAlden的回复