在我们的应用程序中,我们正在读取一个文件以使用 phonegap 文件系统获取消息详细信息。它主要在android中工作,但在windows phone 7中,当我读取相同的文件时,文件系统经常得到“空或未定义”。我将在下面粘贴我的代码以供参考。
this.getMessageContent = function(){
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, onFileSystemSuccess, onProcessFailure);
};
function onFileSystemSuccess(fileSystem){
fileSystem.root.getFile("/app/www/Notifications.txt", null, gotFileEntry, onProcessFailure);
console.log("File system name"+fileSystem.name);
console.log("File root name"+fileSystem.root.name);
}
function gotFileEntry(fileEntry) {
fileEntry.file(readFileContent, onProcessFailure);
}
function readFileContent(file) {
console.log("File Size-->"+file.size);
console.log("File url-->"+file.fullPath);
var reader = new FileReader();
reader.onloadend = function(evt) {
console.log("Read as text");
var contentLength = evt.target.result;
if(evt.target.result){
console.log("File Content Non-Empty-->"+evt.target.result);
}else{
console.log("File Content Empty-->"+evt.target.result);
}
};
reader.readAsText(file);
}
function onProcessFailure(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 = 'Unknown Error';
break;
};
console.log('Notification File Related Error: ' + msg);
}
上面的代码有时可以正常工作,有时会抛出以下错误
Log:"Error in error callback: File672824422 = TypeError: Unable to get value of the property 'getFile': object is null or undefined"
phonegap fileSystem 对象经常变为 null 或未定义。
我有一个链接,点击我正在调用函数 this.getMessageContent() 来读取文件。我无法弄清楚文件系统对象如何在 windows phone7 中频繁地变为空或未定义。