Сохранить без подсказки в приложении Chrome Packaged
Я начал заглядывать в Google Apps для Google Apps в Chrome, http://developer.chrome.com/apps, который кажется отличной технологией, но в начале сцена.
Мой вопрос: возможно ли сохранять файлы на компьютер с помощью API-интерфейса файловой системы из приложения без подсказки? Я хочу создать приложение, которое может сохранять файлы журналов и т.д.
Ответы
Ответ 1
У меня были разговоры с людьми, участвующими в разработке пакетных приложений, и поскольку сегодня у вас нет доступа к файловой системе без подсказки, мы вне изолированной программной среды приложений. Но это может произойти в будущем.
Но есть новый проект под названием Node -Webkit, который очень похож на Chrome, где вы разрабатываете приложение в Chrome с помощью HTML, js и т.д., где вы также можете запускать узлы в браузере. Используя это, вы можете получить доступ к файловой системе и многим другим вещам.
Проверьте здесь:
https://github.com/rogerwang/node-webkit и
https://github.com/rogerwang/node-webkit/wiki
Загрузка и сохранение файлов в Node -Webkit очень проста. Похоже на это
var gui = require("nw.gui");
var fs = require("fs");
//Save
fs.writeFile('message.txt', 'Hello Node', function (err) {
if (err) throw err;
console.log('It\ saved!');
});
//Load
fs.readFile('message2.txt', 'utf8', function (err, data) {
if (err) throw err;
console.log(data);
});
Ответ 2
Похоже, вы скоро сможете это сделать - см. https://groups.google.com/a/chromium.org/forum/#!topic/apps-dev/fu1TyjdYLEc
Ответ 3
Вид. Вы можете сохранить в рабочем пространстве приложения, что означает, что файл будет сохранен, но пользователь или другие приложения не будут иметь к нему доступа. Он будет находиться в изолированном хранилище. Для этого просто используйте API-интерфейс файловой системы HTML5 (учебник здесь).
Вам нужно: "permissions": ["storage"]
в вашем манифесте, а в js вы можете сделать:
var onInitFsCallback=function(fs) {
fs.root.getFile('log.txt', {create: true}, function(fileEntry) {
fileEntry.createWriter(function(fileWriter) {
_this.fileWriter = fileWriter;
fileWriter.onwriteend = onWriteEndCallback;
fileWriter.onerror = onErrorCallback;
fileWriter.write(myBlob);
fileWriter.write(myString);
}, errorHandler);
}, errorHandler);
};
window.webkitRequestFileSystem([window.TEMPORARY or window.PERMANENT], sizeInBytes,
onInitFsCallback, onErrorCallback);
Вы также можете проверить свою файловую систему приложения с помощью инструментов Inspector Tools (Resources → Filesystem). Оттуда вы можете загружать или удалять файлы. В Chrome 24 вам необходимо включить эксперименты с инструментами разработчика в флагах Chrome://, нажмите меню настроек DevTools, "Эксперименты" и включите проверку FileSystem.
С другой стороны, если вы хотите сохранить в произвольном месте вне изолированной программной среды приложения, для обеспечения безопасности требуется приглашение пользователя.