我正在用Firefox插件SDK编写一个插件,安装插件时我必须执行一些操作。有什么方法可以自定义附加组件安装程序吗?如果没有,我可以在第一次加载加载项时执行这些操作。我怎么能那样做?
不,安装程序只会安装扩展,没有什么花哨的。它将调用扩展的bootstrap.js
中的install()
方法,但插件SDK不会向插件公开该功能。
所以,如果你需要初始化一些东西,只需检查它是否已经初始化。例如,如果你需要在第一次运行时创建一个文件:当你的扩展启动时,检查该文件是否已经存在。如果没有,那么创建它。
如果无法轻松检测扩展是否已初始化,则可以使用首选项。类似这样的东西:
var {prefs} = require("simple-prefs");
if (!prefs.firstRunDone)
{
prefs.firstRunDone = true;
// Your first-run code goes here
}
main.js中有两个可用的函数exports.main
和exports.onUnload
,它们分别在加载项执行之前和卸载之前调用。你可以这样覆盖它们:
exports.main = function(options, callbacks)
{
if (options.loadReason == 'install') {
// init stuff
}
}
exports.onUnload = function(reason)
{
if (reason == 'uninstall') {
// uninit stuff
}
}
options
中有更多的字段和多种可能的原因。来源。