我目前正在开发SDK Firefox扩展程序,并希望在用户卸载我的扩展程序后执行某些操作(例如,清理存储空间)。我试过了:
exports.onUnload = function (reason) {
if (reason == "uninstall")
{
//do something
}
}
并且相信它会起作用,直到我在this article(文章末尾)读到由于该错误,我将永远不会被通知“卸载”,只是禁用。
现在,我知道boostraped扩展具有uninstall
函数,该函数将被正确调用。但是,如果我用jpm构建我的扩展,我不能只是篡改 bootstrap.js (或者我可以)。
我也尝试了以下内容:
require("sdk/system/unload").when(function (reason) {
//do my thing
});
但这也是一样的。
有没有办法绕过这个bug?
答案 0 :(得分:0)
正如您所说,onUnload
方法目前存在错误,因此永远不会使用uninstall
原因参数调用它。
你唯一能做的就是听取禁用。在大多数情况下,这足够了,因为很少一部分用户在禁用扩展后重新启用扩展。