如何将数据库文件从dataDirectory复制到Cordova中的www文件夹?

时间:2017-02-27 05:30:09

标签: android cordova

我想从服务器下载数据库文件并在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');
}
}

请帮忙。

1 个答案:

答案 0 :(得分:1)

您无法写入Cordova应用程序中的www目录 - 它是只读的。

copy methodcordova-plugin-dbcopy州的文档:

  

此方法允许您从www目录复制数据库。

即。它允许您将现有数据库复制到www目录另一个目录,例如由cordova.file.dataDirectory

指示的特定于平台的应用持久存储位置