Tworzenie instalatora

 

W tym artykule opisane jest, jak umieścić aplikację XUL w instalatorze.

Paczki XPInstall

Mozilla dostarcza mechanizm, który może zostać użyty do umieszczenia okien XUL, skryptów, skórek i innych plików w pojedynczych plikach instalatora. Możesz umieścić gdziekolwiek plik instalatora, aby użytkownik mógł go pobrać. Wystarczy prosty skrypt do tego, by paczka została pobrana i zainstalowana. Ten mechanizm nazywa się XPInstall (Cross Platform Install).

Instalator XPInstall jest spakowany w pliku JAR. Do pliku JAR można dodawać pliki, które mają być zainstalowane. W dodatku instalator powinien być zawarty w skryptach instalacyjnych (plik install.js), używanych w procesie instalacji. Skrypt ma dostęp do różnych funkcji instalacji, które mogą posłużyć do instalacji plików i komponentów.

Pliki instalatora JAR zwykle mają rozszerzenie .xpi (wymawiamy zippy), by odróżnić je od innych archiwów. Zwykle instalatory będą używane do instalacji komponentów Mozilli, takich jak motywy, wtyczki i inne paczki.

Jest kilka następujących po sobie kroków wymaganych do instalacji. Opisane poniżej (krok po kroku):

  1. Stwórz stronę WWW, z której użytkownik może pobrać oprogramowanie do instalacji. Strona będzie zawierała wyzwalacz, który jest częścią skryptu, który zainicjuje proces instalacji.
  2. Użytkownik otrzyma okno dialogowe z informacją o tym, jaka paczka będzie instalowana. Może być to użyte do uruchomienia wielu instalatorów. W tym przypadku będą one przedstawione na liście. Użytkownik będzie mógł wybrać między kontynuacją lub anulowaniem instalacji.
  3. Jeżeli użytkownik zdecyduje się na kontynuację, plik XPI jest pobierany. Pasek postępu jest wyświetlany podczas całego procesu.
  4. Plik install.js jest wypakowywany z archiwum skryptu i uruchamiany. Skrypt ten wywoła funkcje instalacyjne, które wskażą, które pliki z archiwum powinny zostać zainstalowane
  5. Gdy skrypt się zakończy, instalacja nowej paczki jest gotowa. W przypadku rozbudowanych paczek skrypty będą uruchamiane kolejno po sobie.

Wyzwalacze instalatora

Jak widać na powyższym przykładzie, proces instalacji jest inicjowany przez umieszczony na stornie wyzwalacz instalatora. To pociąga za sobą użycie specjalnego, globalnego obiektu InstallTrigger. Zawiera pewną liczbę metod, które mogą zostać użyte, by zacząć proces instalacji. Możesz użyć obiektu o lokalnej lub zdalnej zawartości, to znaczy pobieranej z jakiegoś miejsca w sieci.

Stwórzmy przykładowy wyzwalacz instalatora. Pociąga to za sobą użycie funkcji InstallTrigger.install(), która pobiera dwa argumenty, pierwszy to lista paczek do instalacji, a druga jest funkcją wywołania zwrotnego, która będzie wywołana, gdy instalacja dobiegnie końca. Na przykład:

function doneFn ( name , result ){
  alert("The package " + name + " was installed with a result of " + result);
}

var xpi = new Object();
xpi["Calendar"] = "calendar.xpi";
InstallTrigger.install(xpi,doneFn);

Najpierw definiujemy funkcję zwrotną doneFn(), która będzie wywołana, gdy instalacja będzie kompletna. Możesz oczywiście nazwać funkcję, jak ci się podoba. Funkcja ma dwa argumenty. Pierwszy jest nazwą paczki aktualnie zainstalowanej. Jest to istotne, gdy instalujesz wiele składników. Drugi jest kodem wynikowym. Jeżeli ma wartość 0, to znaczy, że instalacja przebiegła pomyślnie. Jeżeli wartość jest inna niż 0, wartość jest kodem błędu. Funkcja doneFn() pokazuje właśnie okienko z alertem.

Następnie tworzymy tablice xpi, która będzie przetrzymywać nazwę (Calendar) i adres URL (calendar.xpi) dla instalatora. Robisz tak samo dla każdej paczki, którą chcesz zainstalować. W końcu wywołujemy funkcję instalacyjną.

Kiedy ta część skryptu zostanie wykonana, calendar.xpi będzie zainstalowane.

Nasz przykład: Okienko dialogowe <tt>Znajdź pliki</tt>

Wypróbujmy to z wyszukiwaniem plików:

function doneFn ( name , result ){
  if (result) alert("An error occured: " + result);
}

var xpi = new Object();
xpi["Find Files"] = "findfile.xpi";
InstallTrigger.install(xpi,doneFn);

Archiwum XPI

Uwaga: Jeśli chcesz stworzyć nową aplikację XULRunner, rozszerzenie lub motyw, zobacz Paczki.

Plik instalatora XPI jest konieczny, by zawrzeć plik zwany install.js, który jest plikiem JavaScript, wykonywanym podczas instalacji. Pozostałe pliki są plikami do instalacji. Zwykle te pliki umieszczone są w katalogu, wewnątrz archiwum, ale niekoniecznie. Dla plików chrome może mieć strukturę podobną do katalog chrome.

Często tylko pliki umieszczone w archiwum XPI zostaną zainstalowane, a będą to skrypty instalacji (install.js) i pliki JAR. JAR przechowuje pliki używane przez twoja aplikację. Komponenty dostarczone wraz z Mozillą są przechowywane w ten sam sposób.

Ponieważ plik XPI jest specjalnym plikiem ZIP, możemy tworzyć i dodawać pliki do niego używając do tego programów archiwizujących.

Nasz przykład: Okienko dialogowe <tt>Znajdź pliki</tt>

Dla okienka dialogowego <tt>Znajdź pliki</tt> stworzymy strukturę w archiwum następująco:

install.js
findfile
  content
    contents.rdf
    findfile.xul
    findfile.js
  skin
    contents.rdf
    findfile.css
  locale
    contents.rdf
    findfile.dtd

Katalog został dodany dla każdego części paczki, z zawartością, motywów i lokalizacji. Plik contents.rdf posiada także ten dodatek, ponieważ będzie potrzebny do rejestracji plików chrome.

Następne spojrzenie w przyszłość z zainstalowanymi skryptami.

Autorzy i etykiety dokumentu

Etykiety: 
 Autorzy tej strony: teoli, Ptak82, Witia, Mgjbot
 Ostatnia aktualizacja: teoli,