В настоящее время у меня есть хром-пакетное приложение, которое мы также портировали на iPad, но я хочу сделать его инсталляционным, используя node-webkit (nw.js) и I необходимо абстрагироваться от хром-пакета API приложения для использования с chrome.fileSystem. Код, который я сейчас использую для сохранения, выглядит следующим образом.Аннотация хром упакованная файловая система приложения для использования с node-webkit
var downloadFile = function (readUrl, next) {
var xhr = new XMLHttpRequest();
xhr.open('GET', readUrl);
xhr.responseType = 'arraybuffer';
xhr.onload = function (e) {
if (this.status == 200) {
var response = this.response;
var params = {
type : 'saveFile',
suggestedName : fileNameNoExtension,
//my code will inject the extension but in this case i just put in txt
accepts : [{
extensions : ['.txt']
}
]
}
chrome.fileSystem.chooseEntry(params, function (writableFileEntry) {
debugger;
writableFileEntry.createWriter(function (writer) {
debugger;
writer.onwriteend = function (e) {
return next(null)
};
writer.onerror = function (e) {};
writer.write(new Blob([response], {
type : 'application/octet-stream'
}));
});
});
} else {
//alert
}
};
xhr.onprogress = function (evt) {
if (evt.lengthComputable) {
console.log('progress: ' + Math.round(evt.loaded * 100/evt.total));
}
}
xhr.addEventListener("error", function() {
return next('error')
}, false);
xhr.addEventListener("abort", function() {
return next('abort')
}, false);
xhr.send();
}