Javascript 如何知道Firefox插件SDK中其他插件的安装情况

Javascript 如何知道Firefox插件SDK中其他插件的安装情况,javascript,firefox,firefox-addon,firefox-addon-sdk,Javascript,Firefox,Firefox Addon,Firefox Addon Sdk,了解SDK附加组件的任何附加组件安装(Firefox浏览器)的代码是什么 我知道应该使用andonNewInstall()方法编写。我无法将它们结合起来编写代码。请帮助我了解代码。如果您想了解加载项安装(而不是卸载)的详细进度,可以使用添加的侦听器。但是,对于您所要求的,在安装and on时接收事件(即不监视安装进度,只监视安装发生的情况),您可以使用and和onInstalled事件 包含完整的附加SDK扩展,它显示了通过该方法可用的各种事件。它还显示已安装的加载项以及正在安装和卸载的加载项触

了解SDK附加组件的任何附加组件安装(Firefox浏览器)的代码是什么


我知道应该使用and
onNewInstall()
方法编写。我无法将它们结合起来编写代码。请帮助我了解代码。

如果您想了解加载项安装(而不是卸载)的详细进度,可以使用添加的侦听器。但是,对于您所要求的,在安装and on时接收事件(即不监视安装进度,只监视安装发生的情况),您可以使用and和onInstalled事件

包含完整的附加SDK扩展,它显示了通过该方法可用的各种事件。它还显示已安装的加载项以及正在安装和卸载的加载项触发事件的顺序(显示您自己安装/卸载的加载项以及正在安装/卸载的加载项不是您自己的加载项时发生的事件)

将该代码向下编辑到您所问的内容所需的程度将导致以下代码(注意:我在此处手动编辑了代码,但未对其进行测试(即可能存在错误)。我在上面链接的答案中的代码已完全测试):

const{AddonManager}=require(“resource://gre/modules/AddonManager.jsm");
var addonListener={
onInstalled:函数(加载项){
log('AddonManager事件:已安装的加载项ID:'+addon.ID
+“::加载项对象:”,加载项);
}
}
exports.onUnload=函数(原因){
//您的加载项侦听器在以下情况下不会自动删除:
//您的加载项已禁用/卸载。
//如果原因是,则必须在exports.onUnload中删除它们
//不是“关机”。如果不关机,错误将显示在
//为其注册侦听器的所有事件的控制台。
如果(原因!=“关机”){
卸载AddOnListener();
}
};
函数installAddonListener(){
//使用AddonManager侦听器侦听您自己的加载项是无效的
//安装事件。该事件发生在您添加侦听器之前。
//log('In installAddonListener:Adding add-on-listener');
AddonManager.addonListener(addonListener);
}
函数uninstallAddonListener(){
//log('In removeddonlistener:Removing add-on-listener');
AddonManager.removeAddonListener(addonListener);
}
installAddonListener();

如果您想了解加载项安装(而不是卸载)的详细进度,可以使用添加的侦听器。但是,对于您所要求的,在安装and on时接收事件(即不监视安装进度,只监视安装发生的情况),您可以使用and和onInstalled事件

包含完整的附加SDK扩展,它显示了通过该方法可用的各种事件。它还显示已安装的加载项以及正在安装和卸载的加载项触发事件的顺序(显示您自己安装/卸载的加载项以及正在安装/卸载的加载项不是您自己的加载项时发生的事件)

将该代码向下编辑到您所问的内容所需的程度将导致以下代码(注意:我在此处手动编辑了代码,但未对其进行测试(即可能存在错误)。我在上面链接的答案中的代码已完全测试):

const{AddonManager}=require(“resource://gre/modules/AddonManager.jsm");
var addonListener={
onInstalled:函数(加载项){
log('AddonManager事件:已安装的加载项ID:'+addon.ID
+“::加载项对象:”,加载项);
}
}
exports.onUnload=函数(原因){
//您的加载项侦听器在以下情况下不会自动删除:
//您的加载项已禁用/卸载。
//如果原因是,则必须在exports.onUnload中删除它们
//不是“关机”。如果不关机,错误将显示在
//为其注册侦听器的所有事件的控制台。
如果(原因!=“关机”){
卸载AddOnListener();
}
};
函数installAddonListener(){
//使用AddonManager侦听器侦听您自己的加载项是无效的
//安装事件。该事件发生在您添加侦听器之前。
//log('In installAddonListener:Adding add-on-listener');
AddonManager.addonListener(addonListener);
}
函数uninstallAddonListener(){
//log('In removeddonlistener:Removing add-on-listener');
AddonManager.removeAddonListener(addonListener);
}
installAddonListener();

我假设您真的在询问如何侦听附加组件的安装。如果您的问题真的是如何听取加载项安装的进度,这就是
addInstallListener()
的目的,然后,请明确说明您希望听取安装进度。也可能您希望询问如何确定安装实际上是新加载项的安装(即,不是已安装加载项的更新)。如果是这样的话,你需要问具体是哪一个。这不是
onNewInstall()
提供的(至少根据我的理解)<创建新的
AddonInstall
时,将激发code>onNewInstall()。将为附加更新创建一个
AddonInstall
。因此,
onNewInstall()
并不表示正在安装新的加载项。我的目的是了解新加载项安装和旧加载项更新的事件。我假设您确实在询问如何侦听加载项的安装。如果您的问题真的是如何收听加载项安装的进度,这正是
addInstallListener()
的目的,那么请您的问题明确说明您想要收听安装