Cordova文件插件目录错误

因此,我正在用angularjs 1构建一个cordova /

phonegap应用程序,并且试图在该应用程序的专用目录/沙箱中保存和读取一个名为calendar.txt的文件,但不能。

调试时我的控制台日志显示没有错误,如果文件不存在则正在创建文件,并且文件正在正确读取。但是事实并非如此。在设备上构建并运行时,不会保存数据。在指定的位置也没有创建文件。

我在控制台上记录了它试图使用的路径,就是它:file:///data/data/com.adobe.phonegap.app/files/calendar.txt

这是我用来打开文件的代码:

$rootScope.openFile = function(){

var pathToFile = cordova.file.dataDirectory + "calendar.txt";

console.log('path = ' + pathToFile);

window.resolveLocalFileSystemURL(pathToFile,

function(fileEntry){

fileEntry.file(function (file) {

var reader = new FileReader();

reader.onloadend = function (e) {

$rootScope.calendar = JSON.parse(this.result);

console.log('file opened');

console.log(JSON.parse(this.result));

};

reader.readAsText(file);

}, function(error){});

}, function(error){

if(error.code == FileError.NOT_FOUND_ERR){

$rootScope.calendar = new Year();

console.log('no file found so it was created');

$rootScope.saveFile();

}

else{

console.log(error);

}

});

};

这是我保存文件的代码:

$rootScope.saveFile = function(){

var data = JSON.stringify($rootScope.calendar, null, '\t');

var fileName = "calendar.txt"

window.resolveLocalFileSystemURL(cordova.file.dataDirectory,

function(directoryEntry){

directoryEntry.getFile(fileName, { create: true },

function (fileEntry) {

fileEntry.createWriter(

function (fileWriter) {

var blob = new Blob([data], { type: 'text/plain' });

fileWriter.write(blob);

console.log('file saved');

},

function (error){});

},

function (error){}

);

},

function(error){

console.log("Saving Error: Error during finding directory", error.message);

}

);

};

我使用了本教程,以了解更多信息:Cordova文件插件教程

我究竟做错了什么?

回答:

我认为您在Android中也遇到了这个问题,因为我也面临同样的问题。根据我的理解和谷歌搜索,在android中(至少在android

5中),除非手机已扎根,否则您无法在应用程序数据目录中写入内容。因此,您可能不得不改用externalRootDirectory。

例如:

希望能帮助到你。

以上是 Cordova文件插件目录错误 的全部内容, 来源链接: utcz.com/qa/416610.html

回到顶部