2016-11-09 1 views
0

Ich portiere meine Erweiterung von Chrome nach Firefox mit WebExtensions.Firefox-Erweiterung: Catching "onInstalled" Ereignis

Es gibt keine Unterstützung für den "browser.runtime.onInstalled" -Event, also gibt es wirklich keine Möglichkeit, dieses Ereignis zu erfassen?

+0

Ich denke, ich sollte nur eine localStorage-Variable verwenden, um ein Skript einmal nach der Installation und dann nie wieder zu starten. –

Antwort

0

Sie müssen lokalen Speicher verwenden. Bei der Deinstallation wird der Speicher gelöscht. Bei Deaktivierung wird der Speicher nicht gelöscht.

browser.storage.get('local', 'install_date').then(function(install_date) { 
    if (!install_date) { 
     // just installed 
     browser.storage.set('local', { 
      install_date: Date.now() 
     }); 
    } 
}); 
+0

Ich habe dies bereits über localStorage.setItem() gelöst, aber ich habe das Problem, dass der Benutzer diese Daten löschen kann, wenn er seine Cookies löscht. Das ist bei Chrome nicht so, weil ich "Nightly" verwende, eine FireFox-Entwicklerversion oder weil ich die LocalStorage-Methode verwende, was für meinen Zweck falsch ist? Oder ist es mit FireFox nicht möglich, Daten dauerhaft zu speichern, ohne die Berechtigung des Benutzers zum Löschen (außer von der Deinstallation)? –

+1

Mit 'chrome.stroage' wird dieses Problem @JuliusS behoben. localStorage wird immer gelöscht, wenn der Benutzer Cookies/Daten löscht. Firefox Leute haben es richtig gemacht. – Noitidart

+0

Ja ich habe schon angefangen alles auf diese Methode umzustellen und alles funktioniert wie vorgesehen. Es ist sehr ärgerlich, dass verschiedene Browser anders damit umgehen, aber ich werde auch meinen Chrome-Code anpassen, nur für den Fall, dass sie die Benutzerrechte in Zukunft ändern werden. –