2016-11-29 3 views
1

Was ist der Code für eine Add-on-Installation (Firefox-Browser) mit einem SDK-Add-on?Wie kann ich die Installation eines anderen Add-ons in Firefox Add-on SDK kennen?

Ich weiß, es sollte mit AddonManager.addInstallListener() und onNewInstall() Methoden geschrieben werden. Ich kann sie nicht kombinieren und den Code schreiben. Bitte hilf mir mit dem Code.

+0

Ich habe angenommen, dass Sie wirklich fragen, wie für die Installation von Add-ons zu hören. Wenn deine Frage wirklich war, wie man den * Fortschritt * von Add-On-Installationen hört, wofür 'addInstallListener()' ist, dann bearbeite bitte deine Frage, um explizit anzugeben, dass du den Fortschritt der Installation * hören willst *. – Makyen

+0

Es ist auch möglich, dass Sie fragen möchten, wie Sie feststellen können, dass die Installation tatsächlich die Installation eines * neuen * Add-Ons ist (d. H. Kein Update für ein Add-on, das bereits installiert ist). Wenn ja, müssen Sie [eine neue/zusätzliche Frage] (http://stackoverflow.com/questions/ask) fragen, was genau das ist. Das bietet 'onNewInstall()' nicht (zumindest nach meinem Verständnis). 'onNewInstall()' wird ausgelöst, wenn ein neuer 'AddonInstall' erstellt wird. Ein 'AddonInstall' wird für Add-On-Updates erstellt. "OnNewInstall()" gibt also nicht an, dass ein * neues * Add-on installiert wird. – Makyen

+0

Meine Absicht war, beide Ereignisse neue Add-on-Installation und alte Add-On-Updates kennen. –

Antwort

0

Wenn Sie den detaillierten Fortschritt von Add-On-Installationen (nicht deinstalliert) wissen möchten, können Sie Listener verwenden, die Sie mit AddonManager.addInstallListener() hinzufügen. Für das, was Sie gefragt haben, Empfangen von Ereignissen, wenn eine AND-on installiert ist (d. H. Den Fortschritt der Installation nicht überwachen, nur dass es passiert), können Sie AddonManager.addAddonListener() und das onInstalled Ereignis verwenden.

This other answer of mine enthält eine komplette Add-on SDK-Erweiterung, die die verschiedenen Veranstaltungen zur Verfügung durch die AddonManager'saddAddonListener() Methode zeigt. Außerdem wird angezeigt, in welcher Reihenfolge die Ereignisse für ein Add-on ausgelöst werden, das bereits installiert ist und welches installiert und deinstalliert wird (sowohl welche Ereignisse für die eigene Installation/Deinstallation als auch wann das Add-on installiert/deinstalliert wird) nicht dein eigenes Add-on).

Bearbeiten Sie diesen Code auf genau das, was für das, was Sie gefragt haben, benötigt im folgenden Code (Hinweis: Ich habe den Code hier bearbeitet, aber nicht getestet (dh es kann Fehler geben). Der Code in der Antwort Ich habe oben verlinkt wurde komplett getestet):

const { AddonManager } = require("resource://gre/modules/AddonManager.jsm"); 

var addonListener = { 
    onInstalled: function(addon){ 
     console.log('AddonManager Event: Installed addon ID: ' + addon.id 
        + ' ::addon object:', addon); 
    } 
} 

exports.onUnload = function (reason) { 
    //Your add-on listeners are NOT automatically removed when 
    // your add-on is disabled/uninstalled. 
    //You MUST remove them in exports.onUnload if the reason is 
    // not 'shutdown'. If you don't, errors will be shown in the 
    // console for all events for which you registered a listener. 
    if(reason !== 'shutdown') { 
     uninstallAddonListener(); 
    } 
}; 

function installAddonListener(){ 
    //Using an AddonManager listener is not effective to listen for your own add-on's 
    // install event. The event happens prior to you adding the listener. 
    //console.log('In installAddonListener: Adding add-on listener'); 
    AddonManager.addAddonListener(addonListener); 
} 

function uninstallAddonListener(){ 
    //console.log('In removeAddonListener: Removing add-on listener'); 
    AddonManager.removeAddonListener(addonListener); 
} 

installAddonListener(); 
+0

Danke für die Antwort. Ich möchte wirklich wissen, wie man Listener für das Installieren von Ereignissen und das Aktualisieren von Ereignissen schreibt. Ich habe die Antwort von Ihnen und bearbeite es gemäß meiner Anforderung. –

+0

@SeelamVenkatanagasiva, Ich bin glücklich, es zu aktualisieren, was Sie wollen, aber ich bin mir nicht sicher, * was genau Sie wünschen *. Es gibt mehrere Ereignisse, die Sie hören könnten. Alle von ihnen sollten auf sowohl Installationen von * neuen * Add-Ons als auch Installationen von * Updates * auf vorhandene Add-Ons reagieren. 'addAddonListener()' kann verwendet werden, um Listener hinzuzufügen, die 'onInstalling' und' onInstalled' (und andere Add-On-Statusänderungen) auslösen. 'addInstallListener()' kann verwendet werden, um während des Installationsprozesses mehrere Ereignisse zu erhalten, die detailliertere Informationen über den Fortschritt der Installation bereitstellen, was normalerweise nicht gewünscht ist. – Makyen

Verwandte Themen