2011-11-02 16 views
5

Powiedzmy, że użytkownik wyłącza moje rozszerzenie, a następnie włącza je.Jak wykryć, czy rozszerzenie Chrome zostało włączone (po wyłączeniu)?

Jak mogę uruchomić funkcję, gdy rozszerzenie zostanie ponownie włączone?

Próbowałem zrobić coś podobnego do uruchamiania funkcji na-extension-install, używając localStorage, ale wygląda na to, że nie działa w przypadku tego ponownego włączenia, ponieważ localStorage nie zostaje wyczyszczone dla strony w tle, gdy jest wyłączony.

if (!localStorage["isInstalled"]) { 
onInstall(); 
localStorage["isInstalled"] = 1; 
} 
+0

Z perspektywy rozszerzenia i użytkownika wyłączenie rozszerzenia ma dokładnie taki sam efekt jak zamknięcie przeglądarki. Dlaczego musiałbyś rozróżniać te dwie sprawy? – serg

Odpowiedz

1

Wystarczy popatrzeć na management API, która pozwala reagować na zdarzenia jak onEnabled, wypalanie kiedy została włączona aplikacja lub rozszerzenie.

+6

Niestety onEnabled jest wyzwalany tylko wtedy, gdy włączone są inne rozszerzenia. Nie uruchamia się, gdy włączone jest samo rozszerzenie. –

2

Samemu rozszerzeniu nie można monitorować, kiedy zostanie wyłączone. Aby to monitorować, potrzebujesz drugiego rozszerzenia.

Jak lekkim alternatywę, można użyć sessionStorage["isInstalled"] = 1;, które się wyczyszczone, jeśli rozbudowa była wyłączona, ale ten będzie również usunięte, jeśli użytkownik opuścił Chrome.

Powiązane problemy