我正在尝试使用chrome.fileSystem api将从Chrome地理定位API收集的数据保存到txt文件中,但是当我能够为这些目的创建文件时,该文件在过程结束时仍为空。 为简单起见,我尝试首先在文件中添加一个字符串(1234567890)。正如你在代码中看到的那样,我已经添加了几个console.log来调查代码中的哪些行没有执行,似乎代码不是从writableFileEntry.creatrwriter()执行的。
chrome.fileSystem.chooseEntry({type: 'saveFile'}, function(writableFileEntry) {
console.log('writableFileEntry - here');
writableFileEntry.createWriter(function(writer) {
console.log('After writableFileEntry - here');
writer.onerror = errorHandler;
writer.onwriteend = function(e) {
console.log('write complete');
};
console.log('before Blob - here');
writer.write(new Blob(['1234567890'], {type: 'text/plain'}));
}, errorHandler);
});
manifest.json文件如下所示:
"permissions": ["location","geolocation", "storage", "unlimitedStorage", "fileSystem", "syncFileSystem", {"fileSystem": ["write"]}
],
"app": {
"background": {
"scripts": ["background.js"]
}
},
"sockets": {
"tcp": {
"connect": "localhost:80"
},
"udp": {
"send": "localhost:80"
}
}
任何指导或建议都会很棒! 谢谢 奥弗
答案 0 :(得分:0)
使用谷歌文档中的一些代码后我才遇到同样的问题。代码引用了一个名为errorHandler的函数,该函数不存在。添加一个名为errorHandler()的函数,它应该可以工作。
这样的事情:
chrome.fileSystem.chooseEntry({type: 'saveFile'}, function(writableFileEntry) {
function errorHandler(){
console.log('error');
};
writableFileEntry.createWriter(function(writer) {
writer.onerror = errorHandler;
writer.onwriteend = function(e) {
console.log('write complete');
};
writer.write(new Blob(['1234567890'], {type: 'text/plain'}));
}, errorHandler);
});