Javascript Cordova文件插件未写入文件
我目前正在使用Cordova Cordova 3.4.1版本的文件插件,在Android上运行时遇到了一些问题。我已经阅读了关于插件和HTML5文件存储API的文档,以及几篇StackOverflow帖子——大多数帖子建议先安装插件,我已经安装了插件,但我找不到任何与我遇到的问题相关的东西 我现在正在构建一个应用程序Android,iOS稍后会接收推送通知。通知工作正常,但我想为用户添加禁用这些推送通知的功能。我想将这些数据存储在手机的某个地方,因为还没有使用SharedReferences的插件,所以我正在将用户的通知首选项写入手机上的一个文件中。我不想查询我们的服务器以了解通知首选项 所以,我根据本教程设置了一些东西:以及Cordova文档。以下是我用于与文件系统交互的代码:Javascript Cordova文件插件未写入文件,javascript,android,cordova,Javascript,Android,Cordova,我目前正在使用Cordova Cordova 3.4.1版本的文件插件,在Android上运行时遇到了一些问题。我已经阅读了关于插件和HTML5文件存储API的文档,以及几篇StackOverflow帖子——大多数帖子建议先安装插件,我已经安装了插件,但我找不到任何与我遇到的问题相关的东西 我现在正在构建一个应用程序Android,iOS稍后会接收推送通知。通知工作正常,但我想为用户添加禁用这些推送通知的功能。我想将这些数据存储在手机的某个地方,因为还没有使用SharedReferences的插
var FileIO = {
initializeFileSystem: function() {
window.requestFileSystem(LocalFileSystem.TEMPORARY, 0, FileIO.gotFS, FileIO.errorHandler);
},
gotFS : function(fileSystem) {
console.log("FILE SYSTEM IS ", fileSystem.name);
gFileSystem = fileSystem;
FileIO.getFile({create : true}, FileIO.writeFile);
},
getFile : function(params, success) {
gFileSystem.root.getFile('notification_preferences.txt', params, success, FileIO.errorHandler);
},
writeFile : function(fileEntry) {
console.log(fileEntry);
console.log('FILE URL: ' + fileEntry.toUrl());
fileEntry.createWriter(function(fileWriter) {
var blob = new Blob(['Lorem Ipsum'], {type: 'text/plain'});
fileWriter.write(blob);
}, errorCallback);
},
readFile : function (fileEntry) {
fileEntry.file(function (file) {
var reader = new FileReader();
reader.onloadend = function (e) {
console.log('CONTENTS OF FILE: ', e.target.result)
};
reader.readAsText(file, 'text/plain');
}, errorCallback);
},
removeFile : function(fileEntry){
fileEntry.remove();
},
// simple error handler
errorHandler : function(e) {
var msg = '';
switch (e.code) {
case FileError.QUOTA_EXCEEDED_ERR:
msg = 'QUOTA_EXCEEDED_ERR';
break;
case FileError.NOT_FOUND_ERR:
msg = 'NOT_FOUND_ERR';
break;
case FileError.SECURITY_ERR:
msg = 'SECURITY_ERR';
break;
case FileError.INVALID_MODIFICATION_ERR:
msg = 'INVALID_MODIFICATION_ERR';
break;
case FileError.INVALID_STATE_ERR:
msg = 'INVALID_STATE_ERR';
break;
default:
msg = e.code;
break;
}
console.log('Error: ' + msg);
}
};
现在,这是我尝试写入文件时遇到的错误:
D/CordovaLog( 2871): file:///android_asset/www/cordova.js: Line 1034 : processMessage failed:
Message: S01 File30696438 {"fullPath":"\/\/notification_preferences.txt","filesystemName":"temporary",
"isDirectory":false,"nativeURL":"file:\/\/\/data\/data\/org.changefactor.pgdemo\/cache\/notification_preferences.txt",
"filesystem":0,"isFile":true,"name":"notification_preferences.txt"}
我不知道发生了什么,也不知道我做错了什么。有没有更简单的方法来存储这些数据?配置有问题吗?本地存储在存储用户首选项方面更有意义。也就是说,除非您打算生成大量用户首选项,例如>5MB。您使用什么代码来编写文件?你能把这个也包括进去吗?