Phonegap / Cordova文件API。卸载时删除文件

时间:2013-02-14 10:53:50

标签: android cordova

我正在构建一个Phonegap / Cordova应用程序,可以下载一些文件并将其保存在设备上。为此,我使用File API。

window.requestFileSystem(LocalFileSystem.PERSISTENT,
    0,
    function (fileSystem) {
        rootPath = fileSystem.root.fullPath;
    }, 
    fail
);

在iOS上,这会将rootPath设置为应用的私人目录,这很好。在Android上,这会将rootPath设置为外部存储的根目录,这有点问题,因为这些文件没有绑定到应用程序,并且在删除应用程序时不会删除。据我了解,在Android上执行此操作的正确方法是使用getExternalFilesDir。如何通过Phonegap获取getExternalFilesDir的功能?

2 个答案:

答案 0 :(得分:4)

您想通过JS请求外部文件目录。

window.requestFileSystem(LocalFileSystem.PERSISTENT, 0,
    function (fileSystem) {
        fileSystem.root.getDirectory("Android/data/com.my.app/files", 
            {create: true, exclusive: false}, 
            function(dirEntry) {
                rootPath = dirEntry.fullPath;
            }, fail);;
    }, 
    fail
);

现在,您有一条路径指向将在卸载应用时清理的区域。

答案 1 :(得分:0)

您无法跟踪卸载事件。但要删除目录,代码如下所示。

function deleteDirectory(directoyName){
    $scope.fs.root.getDirectory(directoyName,{ create: false, exclusive: false }, function(dirEntry) {
      dirEntry.removeRecursively(function() {
        console.log('Directory Successfully Removed.');
      }, errorHandler);
    }, errorHandler);
  }