New*_*ang 4 firefox firefox-addon firefox4
Firefox 4公开了一些事件以检测用户何时卸载扩展程序。我可以onUninstalling开火(当用户单击以删除扩展时),但是当onUninstalled开火(应该在重启后发生)时,我什么也没发生。
Components.utils.import("resource://gre/modules/AddonManager.jsm");
AddonManager.addAddonListener({
onUninstalled: function(addon){
//does not work
alert("uninstalled!");
},
onUninstalling: function(addon){
//works as expected
alert("uninstalling!");
}
});
Run Code Online (Sandbox Code Playgroud)
我最终希望在用户卸载我的扩展程序后显示一个页面。如果可以的话,我宁愿在onUninstalled之后进行。
onUninstalled删除扩展名后将调用方法-因此,扩展名可能无法接收其自己的卸载事件,因此不再可以接收它。您可以获取有关其他附件被卸载的通知,但这是此事件的重点。查看源代码,似乎还有一个问题-仅针对不需要重新启动的加载项发送此通知。考虑到重新启动可以从根本上改变这种情况,这是有道理的,因为外部应用程序在扩展目录中添加或删除了附件。因此,Firefox甚至不尝试传达未运行时发生的更改,任何侦听器都应该在每个浏览器启动时都简单地重新读取加载项列表。
综上所述,作为一个“经典”扩展,onUninstalling即使该事件不能保证该扩展将被卸载(用户仍然可以还原选择),您也必须使用它。自举扩展(不需要重新启动,请参阅https://developer.mozilla.org/en/Extensions/Bootstrapped_extensions)可以更轻松地进行,uninstall()即使禁用了扩展,也会在bootstrap.js中调用方法。但是,将您的扩展程序转换为引导程序并不总是那么容易,这有很多陷阱:http : //adblockplus.org/blog/how-many-hacks-does-it-take-to-make您的扩展安装无需重新启动
| 归档时间: |
|
| 查看次数: |
935 次 |
| 最近记录: |