在 NaCl 中保存持久文件并读取应用程序内部 JavaScript 代码
Save persistent file in NaCl and read inside app JavaScript code
在我的 chrome 应用程序中,我想在 NaCl
模块中保存一个持久文件(使用 Pepper API
或 nacl_io
),然后打开并阅读它JavaScript 应用程序内的代码。
NaCl
部分使用 nacl_io
实现并且工作正常(使用 html5fs
和 PERSISTENT
类型)。
如何在JS代码中完成另一部分?
您可以使用 Filesystem API 访问 JavaScript 中的文件。
以下是从该页面读取文件的示例:
function onInitFs(fs) {
fs.root.getFile('log.txt', {}, function(fileEntry) {
// Get a File object representing the file,
// then use FileReader to read its contents.
fileEntry.file(function(file) {
var reader = new FileReader();
reader.onloadend = function(e) {
var txtArea = document.createElement('textarea');
txtArea.value = this.result;
document.body.appendChild(txtArea);
};
reader.readAsText(file);
}, errorHandler);
}, errorHandler);
}
window.requestFileSystem(window.TEMPORARY, 1024*1024, onInitFs, errorHandler);
在您的情况下,您需要从 PERSISTENT 文件系统而不是 TEMPORARY 文件系统读取。
请注意 API 在 Chrome 中作为 window.webkitRequestFileSystem
的前缀。
在我的 chrome 应用程序中,我想在 NaCl
模块中保存一个持久文件(使用 Pepper API
或 nacl_io
),然后打开并阅读它JavaScript 应用程序内的代码。
NaCl
部分使用 nacl_io
实现并且工作正常(使用 html5fs
和 PERSISTENT
类型)。
如何在JS代码中完成另一部分?
您可以使用 Filesystem API 访问 JavaScript 中的文件。
以下是从该页面读取文件的示例:
function onInitFs(fs) {
fs.root.getFile('log.txt', {}, function(fileEntry) {
// Get a File object representing the file,
// then use FileReader to read its contents.
fileEntry.file(function(file) {
var reader = new FileReader();
reader.onloadend = function(e) {
var txtArea = document.createElement('textarea');
txtArea.value = this.result;
document.body.appendChild(txtArea);
};
reader.readAsText(file);
}, errorHandler);
}, errorHandler);
}
window.requestFileSystem(window.TEMPORARY, 1024*1024, onInitFs, errorHandler);
在您的情况下,您需要从 PERSISTENT 文件系统而不是 TEMPORARY 文件系统读取。
请注意 API 在 Chrome 中作为 window.webkitRequestFileSystem
的前缀。