Cykl życia aplikacji Chrome

Środowisko wykonawcze aplikacji i strona zdarzenia odpowiadają za zarządzanie cyklem życia aplikacji. Środowisko wykonawcze aplikacji zarządza instalacją aplikacji, kontroluje stronę wydarzenia i może zamknąć aplikację w dowolnym momencie. Wydarzenie nasłuchuje zdarzeń ze środowiska wykonawczego aplikacji i zarządza tym, co i w jaki sposób zostanie uruchomione.

Jak działa cykl życia

Środowisko wykonawcze aplikacji wczytuje stronę zdarzenia na komputerze użytkownika i uruchamiane jest zdarzenie onLaunch(). Ten informuje stronę wydarzenia, które okna mają zostać uruchomione i jakie mają wymiary.

jak działa cykl życia aplikacji

Jeśli na stronie zdarzenia nie ma wykonywanego kodu JavaScript, nie ma oczekujących wywołań zwrotnych ani otwartych okien, w tagu wyczyści stronę zdarzenia i zamyka aplikację. Przed usunięciem strony zdarzenia z pamięci Uruchamiane jest zdarzenie onSuspend(). Dzięki temu na stronie wydarzenia można wykonać proste zadania związane z porządkowaniem przed zamknięciem aplikacji.

Utwórz stronę i okna wydarzenia

Wszystkie aplikacje muszą mieć stronę wydarzenia. Ta strona zawiera logikę najwyższego poziomu aplikacji z nie używa własnego interfejsu i odpowiada za tworzenie okien dla wszystkich stron aplikacji.

Utwórz stronę wydarzenia

Aby utworzyć stronę wydarzenia, dołącz „tło” w manifeście aplikacji i uwzględnij pole background.js w tablicy skryptów. Wszystkie skrypty biblioteki używane przez stronę zdarzenia należy dodać do w tle pierwsze pole:

"background": {
  "scripts": [
    "foo.js",
    "background.js"
  ]
}

Strona zdarzenia musi zawierać funkcję onLaunched(). Funkcja ta jest wywoływana, gdy aplikacja jest uruchamiana w dowolny sposób:

chrome.app.runtime.onLaunched.addListener(function() {
  // Tell your app what to launch and how.
});

Tworzenie okien

Strona wydarzenia może według własnego uznania utworzyć jedno lub więcej okien. Domyślnie te okna są utworzone za pomocą połączenia ze stroną wydarzenia, na które strona wydarzenia może tworzyć skrypty.

Okna aplikacji Chrome nie są powiązane z żadnymi oknami przeglądarki Chrome. Mają one opcjonalną ramkę z paskiem tytułu i elementami sterującymi rozmiarem oraz zalecanym identyfikatorem okna. Windows bez identyfikatorów przywrócić ich rozmiar i lokalizację po ponownym uruchomieniu.

Oto przykładowe okno utworzone ze strony background.js:

chrome.app.runtime.onLaunched.addListener(function() {
  chrome.app.window.create('main.html', {
    id: 'MyWindowID',
    bounds: {
      width: 800,
      height: 600,
      left: 100,
      top: 100
    },
    minWidth: 800,
    minHeight: 600
  });
});

Z uwzględnieniem danych o uruchomieniu

W zależności od sposobu wprowadzenia aplikacji na rynek konieczne może być przetworzenie danych na stronie wydarzenia. Według domyślnie nie ma danych uruchamiania, gdy aplikacja jest uruchamiana przez Menu z aplikacjami. W przypadku aplikacji, które zawierają modułów obsługi plików, musisz obsługiwać parametr launchData.items, aby umożliwić ich uruchamianie .

Nasłuchiwanie zdarzeń w czasie działania aplikacji

Środowisko wykonawcze aplikacji kontroluje liczbę instalacji, aktualizacji i odinstalowań. Nie musisz nic robić, aby skonfigurujesz środowisko wykonawcze aplikacji, ale strona zdarzenia może nasłuchiwać zdarzenia onInstalled() do zapisania ustawienia lokalne i zdarzenie onSuspend(), aby wykonać proste zadania związane z czyszczeniem jeszcze przed zamknięciem strony wydarzenia. wyładowano z pamięci.

Przechowywanie ustawień lokalnych

Funkcja chrome.runtime.onInstalled() jest wywoływana po zainstalowaniu aplikacji lub jej zainstalowaniu Zaktualizowano. Przy każdym wywołaniu tej funkcji wywoływane jest zdarzenie onInstalled. Na stronie wydarzenia można nasłuchuj tego zdarzenia i używaj interfejsu Storage API do zapisywania i aktualizowania ustawień lokalnych (zobacz też Opcje miejsca na dane).

chrome.runtime.onInstalled.addListener(function() {
  chrome.storage.local.set(object items, function callback);
});

Zapobieganie utracie danych

Użytkownicy mogą odinstalować Twoją aplikację w każdej chwili. Po odinstalowaniu nie uruchamiany kod ani prywatne dane z przeszłości. Może to prowadzić do utraty danych, ponieważ użytkownicy mogą odinstalować aplikację, która jest dostępna lokalnie poddanych edycji, niezsynchronizowanych. Przechowuj je w bezpiecznym miejscu, aby nie utracić danych.

Minimalnym wymogiem jest zapisanie ustawień użytkownika, tak aby, jeśli użytkownik ponownie zainstalował aplikację, jego dane jest wciąż dostępna do ponownego wykorzystania. Za pomocą interfejsu Storage API (storage.sync) dane użytkowników mogą być automatycznie synchronizowane z Synchronizacją Chrome.

Wyczyść przed zamknięciem aplikacji

Środowisko wykonawcze aplikacji wysyła zdarzenie onSuspend() na stronę zdarzenia przed jego usunięciem. Twoja strona wydarzenia może nasłuchiwać tego zdarzenia i wykonywać zadania związane z czyszczeniem oraz zapisywać stan przed zamknięciem aplikacji.

Po wywołaniu tego zdarzenia rozpocznie się proces zamykania aplikacji. Jeśli aplikacja jest otwarta okien może zostać ponownie uruchomiony w przyszłości za pomocą zdarzenia onRestarted. W takim przypadku aplikacja powinna zapisze bieżący stan w pamięci trwałej, dzięki czemu będzie można ponownie uruchomić go w tym samym stanie, jeśli otrzyma onRestarted zdarzenie. Aplikacja ma tylko kilka sekund na zapisanie stanu. Po tym czasie jest została zakończona, więc warto zapisywać stan aplikacji stopniowo, gdy jest ona uruchomiona w zwykły sposób.

Po otrzymaniu onSuspend żadne kolejne zdarzenia nie będą dostarczane do aplikacji, chyba że zawieszenie zostanie zawieszone przerwano z jakiegoś powodu. W tym przypadku do aplikacji zostanie dostarczony onSuspendCanceled, a tag nie zostanie wczytana.

chrome.runtime.onSuspend.addListener(function() {
  // Do some simple clean-up tasks.
});