Firefox插件中带有附加SDK的更多存储空间 [英] More storage in a Firefox addon with Add-on SDK
本文介绍了Firefox插件中带有附加SDK的更多存储空间的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
解决方案
相反,您可以爆发并在用户个人资料目录中创建一个文件(请参阅文件I / O代码片段)。例如。按照这些行来从用户的配置文件中读取文件 myData.txt
:
$ b
var {Cu,components} = require(chrome);
var {FileUtils} = Cu.import(resource://gre/modules/FileUtils.jsm);
var {NetUtils} = Cu.import(resource://gre/modules/NetUtil.jsm);
var file = FileUtils.getFile(ProfD,[myData.txt]);
NetUtil.asyncFetch(file,function(inputStream,status){
if(!components.isSuccessCode(status)){
//处理错误!
return ;
}
//文件数据包含在inputStream中
//你可以用
将它读入字符串var data = NetUtil.readInputStreamToString(inputStream ,inputStream.available());
console.log(data);
});
请注意,导入模块的异常语法是由于错误683217 。
I want to develop an addon with the addon builder. I read that with simple storage one can have about 5 megabytes for his addon, but 5 mgb won't do it for my app. I need more. What could I do?
解决方案
You cannot do much given the Add-on SDK API. Instead you could break out of the sandbox and create a file in user's profile directory (see File I/O code snippets). E.g. something along these lines to read the file myData.txt
from user's profile:
var {Cu, components} = require("chrome");
var {FileUtils} = Cu.import("resource://gre/modules/FileUtils.jsm");
var {NetUtils} = Cu.import("resource://gre/modules/NetUtil.jsm");
var file = FileUtils.getFile("ProfD", ["myData.txt"]);
NetUtil.asyncFetch(file, function(inputStream, status) {
if (!components.isSuccessCode(status)) {
// Handle error!
return;
}
// The file data is contained within inputStream.
// You can read it into a string with
var data = NetUtil.readInputStreamToString(inputStream, inputStream.available());
console.log(data);
});
Note that the unusual syntax to import modules is due to bug 683217.
这篇关于Firefox插件中带有附加SDK的更多存储空间的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文