Creando un instalador

This is an archived page. It's not actively maintained.

Esta secci贸n describe como empaquetar una aplicaci贸n de XUL en un instalador.

Paquetes de XPInstall

Mozilla proporciona un mecanismo que se puede utilizar para empaquetar ventanas de XUL, scripts, skins y otros archivos en un solo instalador. Usted puede colocar este instalador en alguna parte para que los usuarios la puedan descargar. Un script simple puede ser usado para tener descargado el paquete e instalarlo. Este mecanismo se llama XPInstall (plataforma cruzada de instalaci贸n).

Los instaladores de XPInstall se empaquetan en archivos JAR. Dentro del archivo JAR, usted puede agregar todos los archivos que usted desea haber instalado. Adem谩s, los instaladores deben contener un script de instalaci贸n (un archivo llamado install.js) que se pueda utilizar para escribir el proceso de la instalaci贸n. Este script tiene acceso a varias funciones de instalaci贸n que se pueden utilizar para instalar archivos y componentes.

Los instaladores del archivo JAR tienen t铆picamente la extensi贸n .xpi (se pronuncia zippy) para distinguirlos de otros archivos. Los instaladores ser谩n utilizados generalmente para instalar los componentes de Mozilla tales como skins nuevos, plugins y nuevos paquetes.Texto de C贸digo

Hay varios pasos implicados en abrir un instalador e instalar los componentes. 脡stos se describen gradualmente abajo.

  1. Crea una pagina web desde la cual el usuario pueda descargar el software que se instalar谩. Esta p谩gina contendr谩 un 鈥榙isparador de la instalaci贸n鈥 que es una peque帽a parte del script que abre la instalaci贸n.
  2. Se le presenta al usuario un di谩logo indicando que el paquete est谩 siendo instalado. Es posible que el 鈥榙isparador de la instalaci贸n鈥 abra m煤ltiples instaladores. En este caso, ser谩n presentados en una lista. El usuario puede elegir continuar o cancelar.
  3. Si el usuario elige continuar, se descargar谩 el instalador del archivo XPI. Una barra de progreso se exhibe al usuario durante este proceso.
  4. El archivo install.js es extra铆do del archivo de la instalaci贸n y se ejecutara. Este script abrir谩 las funciones del instalador que indicar谩n qu茅 partes del archivo deben ser instalados.
  5. Una vez que el script est茅 completo, el nuevo paquete ya habr谩 sido instalado. Si los paquetes m煤ltiples est谩n siendo instalados, sus scripts funcionar谩n en secuencia.

Disparadores (triggers) de instalaci贸n

Seg煤n lo indicado arriba, el proceso de la instalaci贸n es empezado por un 鈥榙isparador de instalaci贸n鈥. Esto implica el uso del objeto global especial InstallTrigger. Este contiene varios m茅todos que se pueden utilizar para comenzar una instalaci贸n. Usted puede utilizar este objeto en el contenido local o remoto, significando que es conveniente para una descarga directa del sitio web.

Vamos a crear un ejemplo de un disparador de instalaci贸n. Esto involucra el uso de la funci贸n InstallTrigger.install. Esta funci贸n tiene dos par谩metros, el primero es una lista de los paquetes a instalar, y el segundo es una funci贸n de rellamada que ser谩 usada cuando la instalaci贸n se complete. Aqu铆 est谩 un ejemplo:

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);

Primero, definimos una funci贸n de rellamada doneFn que ser谩 ejecutada cuando la instalaci贸n se complete. Usted puede nombrar la funci贸n como prefiera. Esta funci贸n tiene dos par谩metros. El primero es el nombre del paquete que acaba de ser instalado. Esto es importante si usted est谩 instalando m煤ltiples componentes. El segundo es un c贸digo de resultado. Si el resultado es 0, la instalaci贸n termin贸 con 茅xito. Si el resultado no es cero, quiere decir que hubo un error y el valor es el c贸digo del error. La funci贸n doneFn solo mostrar谩 un mensaje de alerta al usuario.

Despu茅s, creamos un vector xpi que contendr谩 el nombre (calendario) y URL (calendar.xpi) del instalador. Usted puede agregar una l铆nea similar para cada paquete que desee instalar. Finalmente, ejecutamos la funci贸n de instalaci贸n.

Cuando esta secci贸n del script se ejecute, el archivo calendar.xpi ser谩 instalado.

Vamos intentar esto con el di谩logo de b煤squeda de archivos.

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

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

El archivo de XPI

Se requiere que el archivo XPI contenga un archivo llamado install.js que es un archivo JavaScript que se ejecuta durante la instalaci贸n. Los archivos restantes son los archivos que se instalar谩n. Estos archivos t铆picamente est谩n colocados dentro de un directorio dentro del archivo pero no es obligatorio. Los archivos cromo (chrome), deben estar estructurados como el directorio chrome.

A menudo, los 煤nicos archivos colocados en un archivo XPI ser谩n el script de instalaci贸n (install.js) y un archivo JAR. Este archivo JAR contiene todos los archivos usados por la aplicaci贸n. Los componentes proporcionados con Mozilla se almacenan de esta manera.

Debido a que el archivo XPI es un archivo tipo ZIP, usted puede crear y agregar archivos usando una aplicaci贸n que manipule estos archivos.

Para el di谩logo de b煤squeda de archivos, crearemos una estructura en el archivo como el siguiente:

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

Se ha agregado un directorio para cada parte del paquete, del contenido, del skin y del 鈥榣ocale鈥. Los archivos contents.rdf tambi茅n se han agregado porque ser谩n necesarios para registrar los archivos 'chrome'.