如何将文件部署到Apache Cordova应用程序的数据目录

时间:2016-11-04 09:20:38

标签: visual-studio cordova cordova-plugin-file

我希望在数据目录中包含一些文件作为我的应用程序的一部分。我使用Visual Studio创建应用程序。

如何包含要部署到数据目录的文件?我在项目中创建某个文件夹吗?我需要将它们标记为内容吗?

亲切的问候

1 个答案:

答案 0 :(得分:1)

您可以编写一些代码,以便在运行时将所需文件从只读www/目录复制到读写目录。我发现一个blog post恰好描述了这一点:

// copy a database file from www/ in the app directory to the data directory
function copyDatabaseFile(dbName) {
  var sourceFileName = cordova.file.applicationDirectory + 'www/' + dbName;
  var targetDirName = cordova.file.dataDirectory;
  // resolve the source and target filenames simultaneously
  return Promise.all([
    new Promise(function (resolve, reject) {
      resolveLocalFileSystemURL(sourceFileName, resolve, reject);
    }),
    new Promise(function (resolve, reject) {
      resolveLocalFileSystemURL(targetDirName, resolve, reject);
    })
  ]).then(function (files) {
    var sourceFile = files[0];
    var targetDir = files[1];
    // try to fetch the target file, to check if it exists
    return new Promise(function (resolve, reject) {
      targetDir.getFile(dbName, {}, resolve, reject);
    }).catch(function () {
      // target file doesn't exist already, so copy it
      return new Promise(function (resolve, reject) {
        sourceFile.copyTo(targetDir, dbName, resolve, reject);
      });
    });
  });
}

在cordova发出deviceready事件之后,您可以在应用程序入口点调用类似的功能。