API en navegador AIR.SWF

Personalización del archivo badge.swf de instalación integrada

Además de utilizar el archivo badge.swf suministrado con el SDK, puede crear su propio archivo SWF para usarlo en una página del navegador. El archivo SWF personalizado puede interactuar con el motor de ejecución de cualquiera de las formas siguientes:

Estas capacidades se proporcionan al llamar a las API de un archivo SWF alojado en adobe.com: air.swf. Puede personalizar el archivo badge.swf y llamar a las API air.swf desde el propio archivo SWF.

Además, un archivo SWF que se ejecuta en el navegador puede comunicarse con una aplicación de AIR en curso utilizando la clase LocalConnection. Para obtener más información, consulte Comunicación con otras instancias de Flash Player y AIR (para desarrolladores de ActionScript) o Comunicación con otras instancias de Flash Player y AIR (para desarrolladores de HTML).

Importante: las funciones que se describen en esta sección (y las API del archivo air.swf) requieren que el usuario tenga Adobe® Flash® Player 9 actualización 3 instalado en Windows o Mac OS. En Linux, la función de instalación integrada requiere Flash Player 10 (versión 10,0,12,36 o posterior). Se puede escribir código para comprobar la versión instalada de Flash Player y proveer una interfaz alternativa para el usuario si no está instalada la versión de Flash Player que se requiere. Por ejemplo: si hay una versión anterior de Flash Player instalada, podría proporcionar un vínculo a la versión de descarga del archivo de AIR (en lugar de utilizar el archivo badge.swf o la API air.swf para instalar una aplicación).

Utilización del archivo badge.swf para instalar una aplicación de AIR

Los SDK de AIR y Flex incluyen un archivo badge.swf que permite utilizar fácilmente la función de instalación integrada. El archivo badge.swf puede instalar el motor de ejecución y una aplicación de AIR desde un vínculo en una página web. El archivo badge.swf y su código fuente se le proporcionan para que los distribuya a través de su sitio web.

Incorporación del archivo badge.swf en una página web

  1. Localice los siguientes archivos, incluidos en el directorio samples/badge de los SDK de AIR y Flex y añádalos a su servidor web.

    • badge.swf

    • default_badge.html

    • AC_RunActiveContent.js

  2. Abra la página default_badge.html en un editor de textos.

  3. En la página default_badge.html, en la función de JavaScript AC_FL_RunContent() , ajuste las definiciones del parámetro FlashVars para lo siguiente:

    Parámetro

    Descripción

    appname

    El nombre de la aplicación que muestra el archivo SWF si no está instalado el motor de ejecución.

    appurl

    (Obligatorio). La URL del archivo de AIR a descargar. Hay que utilizar una URL absoluta (y no una relativa).

    airversion

    (Obligatorio). Para la versión 1.0 del motor de ejecución, defina esto en 1.0.

    imageurl

    La URL de la imagen (opcional) a mostrar como logotipo.

    buttoncolor

    El color del botón de descargar (especificado como valor hexadecimal; por ejemplo, FFCC00 ).

    messagecolor

    El color del mensaje de texto que aparece debajo del botón si no está instalado el motor de ejecución (especificado como valor hexadecimal; por ejemplo, FFCC00 ).

  4. El tamaño mínimo del archivo badge.swf es de 217 píxeles de anchura por 180 píxeles de altura. Ajuste los valores de los parámetros width y height de la función AC_FL_RunContent() de acuerdo con sus necesidades.

  5. Cambie el nombre del archivo default_badge.html y ajuste su código (o inclúyalo en otra página HTML) para adaptarlo a sus necesidades.

Nota: para la etiqueta embed HTML que carga el archivo badge.swf, no establezca el atributo wmode ; déjelo definido en el valor predeterminado ( "window" ). Otras configuraciones de wmode evitarán la instalación en algunos sistemas. Asimismo, el uso de otras configuraciones de wmode genera un error: “Error #2044: ErrorEvent no controlado:. text=Error #2074: El escenario es demasiado pequeño para la interfaz de usuario de descarga.”

También se puede editar y recompilar el archivo badge.swf. Para obtener más información, consulte Modificación del archivo badge.swf .

Instalación de la aplicación de AIR desde un vínculo de instalación integrada en una página web

Una vez que haya añadido a una página el vínculo de instalación integrada, el usuario podrá instalar la aplicación de AIR con solo hacer clic en el vínculo del archivo SWF.

  1. Examine la página HTML en un navegador web que disponga tenga Flash Player instalado (versión 9 actualización 3 o posterior en Windows y Mac OS, o bien, versión 10 en Linux).

  2. En la página web, haga clic en el vínculo del archivo badge.swf.

    • Si ha instalado el motor de ejecución, vaya al paso siguiente.

    • Si no ha instalado el motor de ejecución, aparece un cuadro de diálogo que le pregunta si desea instalarlo. Instale el motor de ejecución (consulte Instalación de Adobe AIR ) y continúe con el siguiente paso.

  3. En la ventana Instalación, deje seleccionada la configuración predeterminada y haga clic en Continuar.

    En un ordenador con Windows, AIR realiza automáticamente lo siguiente:

    • Instala la aplicación en c:\Archivos de programa\

    • Crea un acceso directo para la aplicación en el escritorio

    • Crea un acceso directo en el menú Inicio

    • Añade una entrada para la aplicación en Agregar o quitar programas, en el Panel de control

    En Mac OS el instalador añade la aplicación al directorio de aplicaciones (por ejemplo, en el directorio /Aplicaciones de Mac OS).

    En un ordenador con Linux, AIR realiza automáticamente lo siguiente:

    • Instala la aplicación en /opt.

    • Crea un acceso directo para la aplicación en el escritorio

    • Crea un acceso directo en el menú Inicio

    • Añade una entrada para la aplicación en el administrador del paquete del sistema.

  4. Seleccione las opciones que desee y haga clic en el botón Instalar.

  5. Una vez concluida la instalación, haga clic en Finalizar.

Modificación del archivo badge.swf

El SDK de Flex y AIR proporciona los archivos de origen para el archivo badge.swf. Estos archivos están incluidos en la carpeta samples/badge del SDK:

Archivos de origen

Descripción

badge.fla

El archivo de origen de Flash se utiliza para compilar el archivo badge.swf. El archivo badge.fla se compila en un archivo SWF 9 (que se puede cargar en Flash Player).

AIRBadge.as

Una clase de ActionScript 3.0 que define la clase de base que se utiliza en el archivo badge.fla.

Se puede utilizar Flash Professional para rediseñar la interfaz visual del archivo badge.fla.

La función constructora AIRBadge() , definida en la clase AIRBadge, carga el archivo air.swf alojado en http://airdownload.adobe.com/air/browserapi/air.swf. El archivo air.swf incluye código para utilizar la función de instalación integrada.

El método onInit() (en la clase AIRBadge) se invoca una vez satisfactoriamente cargado el archivo air.swf:

private function onInit(e:Event):void { 
    _air = e.target.content; 
    switch (_air.getStatus()) { 
        case "installed" : 
            root.statusMessage.text = ""; 
            break; 
        case "available" : 
            if (_appName && _appName.length > 0) { 
                root.statusMessage.htmlText = "<p align='center'><font color='#"  
                        + _messageColor + "'>In order to run " + _appName +  
                        ", this installer will also set up Adobe® AIR®.</font></p>"; 
            } else { 
                root.statusMessage.htmlText = "<p align='center'><font color='#"  
                        + _messageColor + "'>In order to run this application, " 
                        + "this installer will also set up Adobe® AIR®.</font></p>"; 
            } 
            break; 
        case "unavailable" : 
            root.statusMessage.htmlText = "<p align='center'><font color='#"  
                        + _messageColor  
                        + "'>Adobe® AIR® is not available for your system.</font></p>"; 
            root.buttonBg_mc.enabled = false; 
            break; 
    } 
}

El código define la variable global _air en la clase principal del archivo air.swf. Esta clase incluye los siguientes métodos públicos, a los que tiene acceso el archivo badge.swf para llamar a la función de instalación integrada:

Método

Descripción

getStatus()

Determina si el motor de ejecución está instalado (o puede instalarse) en el ordenador. Para obtener más información, consulte Cómo comprobar si está instalado el motor de ejecución .
  • runtimeVersion : una cadena que indica la versión del motor de ejecución (por ejemplo: "1.0.M6" ) que requiere la aplicación a instalarse.

installApplication()

Instala la aplicación especificada en el equipo del usuario. Para obtener más información, consulte Instalación de una aplicación de AIR desde el navegador .

  • url : una cadena que define la URL. Hay que utilizar una ruta de URL absoluta (y no una relativa).

  • runtimeVersion : cadena que indica la versión del motor de ejecución (por ejemplo: "2.5." ) que requiere la aplicación que se va a instalar.

  • arguments : argumentos a pasarse a la aplicación si se inicia en cuanto se haya instalado. La aplicación se inicia en el momento de instalarla si el elemento allowBrowserInvocation está definido en true en el archivo descriptor de la aplicación. (Para obtener más información sobre el archivo descriptor de la aplicación, consulte Archivos descriptores de las aplicaciones de AIR .) Si la aplicación se inicia a resultas de una instalación integrada desde el navegador (habiendo el usuario seleccionado iniciarla en cuanto se instalara), el objeto NativeApplication de la aplicación distribuye un objeto BrowserInvokeEvent solo si se pasan argumentos. Tenga en cuenta las consecuencias para la seguridad que pueden tener los datos que pase a la aplicación. Para obtener más información, consulte Inicio desde el navegador de una aplicación de AIR instalada .

Los valores para url y runtimeVersion se pasan al archivo SWF a través de las opciones de FlashVars en la página HTML contenedora.

Si la aplicación se inicia automáticamente al instalarla, se puede utilizar la comunicación por LocalConnection para que la aplicación instalada se ponga en contacto con el archivo badge.swf al invocarse. Para obtener más información, consulte Comunicación con otras instancias de Flash Player y AIR (para desarrolladores de ActionScript) o Comunicación con otras instancias de Flash Player y AIR (para desarrolladores de HTML).

También se puede llamar al método getApplicationVersion() del archivo air.swf para comprobar si una aplicación está instalada. Se puede llamar a este método antes del proceso de instalación de la aplicación o una vez iniciada la instalación. Para obtener más información, consulte Cómo comprobar desde una página web si una aplicación de AIR está instalada .

Carga del archivo air.swf

Puede crear su propio archivo SWF que utilice las API del archivo air.swf para interactuar con el motor de ejecución y las aplicaciones de AIR desde una página web en un navegador. El archivo air.swf está alojado en http://airdownload.adobe.com/air/browserapi/air.swf. Para hacer referencia a las API de air.swf desde el archivo SWF, cargue el archivo air.swf en el mismo dominio de la aplicación que el archivo SWF. El código siguiente muestra un ejemplo de cargar el archivo air.swf en el dominio de la aplicación del archivo SWF de carga:

var airSWF:Object; // This is the reference to the main class of air.swf 
var airSWFLoader:Loader = new Loader(); // Used to load the SWF 
var loaderContext:LoaderContext = new LoaderContext();  
                                // Used to set the application domain  
 
loaderContext.applicationDomain = ApplicationDomain.currentDomain; 
 
airSWFLoader.contentLoaderInfo.addEventListener(Event.INIT, onInit); 
airSWFLoader.load(new URLRequest("http://airdownload.adobe.com/air/browserapi/air.swf"),  
                    loaderContext); 
 
function onInit(e:Event):void  
{ 
    airSWF = e.target.content; 
}

Una vez cargado el archivo air.swf (cuando el objeto contentLoaderInfo de Loader distribuye el evento init ), se puede llamar a cualquiera de las API de air.swf, descritas en las secciones siguientes.

Nota: el archivo badge.swf suministrado con los SDK de AIR y Flex carga automáticamente el archivo air.swf. Consulte Utilización del archivo badge.swf para instalar una aplicación de AIR . Las instrucciones que aparecen en esta sección son para crear su propio archivo SWF que cargue el archivo air.swf.

Cómo comprobar si está instalado el motor de ejecución

Un archivo SWF puede comprobar si el motor de ejecución está instalado, llamando al método getStatus( ) en el archivo air.swf cargado desde http://airdownload.adobe.com/air/browserapi/air.swf. Para obtener más información, consulte Carga del archivo air.swf .

Una vez cargado el archivo air.swf, el archivo SWF puede llamar al método getStatus( ) del archivo air.swf como en el ejemplo siguiente:

var status:String = airSWF.getStatus();

El método getStatus() devuelve uno de los siguientes valores de cadena, basado en el estado del motor de ejecución en el ordenador:

Valor de la cadena

Descripción

"available"

El motor de ejecución puede instalarse en este ordenador pero ahora no está instalado.

"unavailable"

El motor de ejecución no puede instalarse en este ordenador.

"installed"

El motor de ejecución está instalado en este ordenador.

El método getStatus() emite un error si la versión necesaria de Flash Player (versión 9 actualización 3 o posterior en Windows y Mac OS, o bien, versión 10 en Linux) no está instalada en el navegador.

Cómo comprobar desde una página web si una aplicación de AIR está instalada

Un archivo SWF puede comprobar si una aplicación de AIR (con ID de la aplicación e ID del editor que coincidan) está instalada, llamando al método getApplicationVersion() en el archivo air.swf cargado desde http://airdownload.adobe.com/air/browserapi/air.swf. Para obtener más información, consulte Carga del archivo air.swf .

Una vez cargado el archivo air.swf, el archivo SWF puede llamar al método getApplicationVersion() del archivo air.swf como en el ejemplo siguiente:

var appID:String = "com.example.air.myTestApplication"; 
var pubID:String = "02D88EEED35F84C264A183921344EEA353A629FD.1"; 
airSWF.getApplicationVersion(appID, pubID, versionDetectCallback); 
 
function versionDetectCallback(version:String):void 
{ 
    if (version == null) 
    { 
        trace("Not installed."); 
        // Take appropriate actions. For instance, present the user with 
        // an option to install the application. 
    } 
    else 
    { 
        trace("Version", version, "installed."); 
        // Take appropriate actions. For instance, enable the 
        // user interface to launch the application. 
    } 
}

El método getApplicationVersion() utiliza los siguientes parámetros:

Parámetros

Descripción

appID

El ID de la aplicación. Para obtener más información, consulte id .

pubID

El ID del editor de la aplicación. Para obtener más información, consulte publisherID . Si la aplicación en cuestión no dispone de un ID de editor, establezca el parámetro pubID en una cadena vacía (“”).

callback

Una función callback que cumple la función de controlador. El método getApplicationVersion() funciona de modo asíncrono, y al detectar la versión instalada (o la falta de una), se invoca este método callback. La definición del método callback debe incluir un parámetro, una cadena de caracteres, que se establece como la cadena de la versión de la aplicación instalada. Si la aplicación no está instalada, se pasa un valor nulo a la función, como se muestra en el ejemplo de código anterior.

El método getApplicationVersion() emite un error si la versión necesaria de Flash Player (versión 9 actualización 3 o posterior en Windows y Mac OS, o bien, versión 10 en Linux) no está instalada en el navegador.

Nota: a partir de AIR 1.5.3, el ID de editor queda desfasado. Los ID de editor no se vuelven a asignar a una aplicación de forma automática. Por compatibilidad con versiones anteriores, las aplicaciones pueden continuar para especificar un ID de editor.

Instalación de una aplicación de AIR desde el navegador

Un archivo SWF puede instalar una aplicación de AIR, llamando al método installApplication() en el archivo air.swf cargado desde http://airdownload.adobe.com/air/browserapi/air.swf . Para obtener más información, consulte Carga del archivo air.swf .

Una vez cargado el archivo air.swf, el archivo SWF puede llamar al método installApplication() del archivo air.swf como en el código siguiente:

var url:String = "http://www.example.com/myApplication.air"; 
var runtimeVersion:String = "1.0"; 
var arguments:Array = ["launchFromBrowser"]; // Optional 
airSWF.installApplication(url, runtimeVersion, arguments); 

El método installApplication() instala la aplicación especificada en el equipo del usuario. Este método utiliza los siguientes parámetros:

Parámetro

Descripción

url

Una cadena de caracteres que define la URL del archivo de AIR a instalar. Hay que utilizar una ruta de URL absoluta (y no una relativa).

runtimeVersion

Una cadena que indica la versión del motor de ejecución (por ejemplo: "1.0") que requiere la aplicación a instalarse.

arguments

Un conjunto de argumentos a pasarse a la aplicación si se inicia en cuanto se haya instalado. Únicamente los caracteres alfanuméricos se reconocen en los argumentos. Si necesita transmitir otros valores, considere el uso de un esquema de codificación.

La aplicación se inicia en el momento de instalarla si el elemento allowBrowserInvocation está definido en true en el archivo descriptor de la aplicación. (Para obtener más información sobre el archivo descriptor de la aplicación, consulte Archivos descriptores de las aplicaciones de AIR .) Si la aplicación se inicia a resultas de una instalación integrada desde el navegador (habiendo el usuario seleccionado iniciarla en cuanto se instalara), el objeto NativeApplication de la aplicación distribuye un objeto BrowserInvokeEvent solo si se pasan argumentos. Para obtener más información, consulte Inicio desde el navegador de una aplicación de AIR instalada .

El método installApplication() solo funciona cuando se le llama en el controlador de eventos para un evento de usuario, por ejemplo al hacer clic con el ratón.

El método installApplication() emite un error si la versión necesaria de Flash Player (versión 9 actualización 3 o posterior en Windows y Mac OS, o bien, versión 10 en Linux) no está instalada en el navegador.

En Mac OS, para instalar una versión actualizada de una aplicación el usuario debe contar con privilegios del sistema adecuados para instalar programas en el directorio de aplicaciones (y privilegios de administrador si la aplicación actualiza el motor de ejecución). En Windows, el usuario debe contar con privilegios de administrador.

También se puede llamar al método getApplicationVersion() del archivo air.swf para comprobar si una aplicación ya está instalada. Se puede llamar a este método antes de que empiece el proceso de instalación de la aplicación o una vez iniciada la instalación. Para obtener más información, consulte Cómo comprobar desde una página web si una aplicación de AIR está instalada . Una vez en ejecución la aplicación, esta puede comunicarse con el contenido SWF en el navegador utilizando la clase LocalConnection. Para obtener más información, consulte Comunicación con otras instancias de Flash Player y AIR (para desarrolladores de ActionScript) o Comunicación con otras instancias de Flash Player y AIR (para desarrolladores de HTML).

Inicio desde el navegador de una aplicación de AIR instalada

Para utilizar la función de invocación desde el navegador (lo que permite iniciar la aplicación desde el navegador), el archivo descriptor de la aplicación en cuestión debe incluir la siguiente definición:

<allowBrowserInvocation>true</allowBrowserInvocation>

Para obtener más información sobre el archivo descriptor de la aplicación, consulte Archivos descriptores de las aplicaciones de AIR .

Un archivo SWF en el navegador puede iniciar una aplicación de AIR, llamando al método launchApplication() en el archivo air.swf cargado desde http://airdownload.adobe.com/air/browserapi/air.swf. Para obtener más información, consulte Carga del archivo air.swf .

Una vez cargado el archivo air.swf, el archivo SWF puede llamar al método launchApplication() del archivo air.swf como en el código siguiente:

var appID:String = "com.example.air.myTestApplication"; 
var pubID:String = "02D88EEED35F84C264A183921344EEA353A629FD.1"; 
var arguments:Array = ["launchFromBrowser"]; // Optional 
airSWF.launchApplication(appID, pubID, arguments);

El método launchApplication() se define en el nivel superior del archivo air.swf (que se carga en el dominio de aplicación de la interfaz de usuario del archivo SWF). Al llamar a este método, AIR inicia la aplicación especificada (si está instalada y se permite la invocación desde el navegador mediante la opción allowBrowserInvocation del archivo descriptor de la aplicación). El método utiliza los siguientes parámetros:

Parámetro

Descripción

appID

El ID de la aplicación que se va a iniciar. Para obtener más información, consulte id .

pubID

El ID del editor de la aplicación que se va a iniciar. Para obtener más información, consulte publisherID . Si la aplicación en cuestión no dispone de un ID de editor, establezca el parámetro pubID en una cadena vacía (“”).

arguments

Un conjunto de argumentos que se pasan a la aplicación. El objeto NativeApplication de la aplicación distribuye un evento BrowserInvokeEvent que tiene una propiedad "arguments" definida en este conjunto.. Únicamente los caracteres alfanuméricos se reconocen en los argumentos. Si necesita transmitir otros valores, considere el uso de un esquema de codificación.

El método launchApplication() solo funciona cuando se le llama en el controlador de eventos para un evento de usuario, por ejemplo al hacer clic con el ratón.

El método launchApplication() emite un error si la versión necesaria de Flash Player (versión 9 actualización 3 o posterior en Windows y Mac OS, o bien, versión 10 en Linux) no está instalada en el navegador.

Si el elemento allowBrowserInvocation está definido en false en el archivo descriptor de la aplicación, la llamada al método launchApplication() no surtirá efecto.

Antes de presentar la interfaz de usuario para iniciar la aplicación, puede ser conveniente llamar al método getApplicationVersion() en el archivo air.swf. Para obtener más información, consulte Cómo comprobar desde una página web si una aplicación de AIR está instalada .

Cuando se invoca la aplicación a través de la función de invocación desde el navegador, el objeto NativeApplication de la aplicación distribuye un objeto BrowserInvokeEvent. Para obtener información, consulte Invocación de una aplicación de AIR desde el navegador (para desarrolladores de ActionScript), o bien, Invocación de una aplicación de AIR desde el navegador (para desarrolladores de HTML).

Si utiliza la función de invocación desde el navegador, asegúrese de tener en cuenta las posibles consecuencias para la seguridad. Estas implicaciones se describen en Invocación de una aplicación de AIR desde el navegador (para desarrolladores de ActionScript) e Invocación de una aplicación de AIR desde el navegador (para desarrolladores de HTML).

Una vez en ejecución la aplicación, esta puede comunicarse con el contenido SWF en el navegador utilizando la clase LocalConnection. Para obtener más información, consulte Comunicación con otras instancias de Flash Player y AIR (para desarrolladores de ActionScript) o Comunicación con otras instancias de Flash Player y AIR (para desarrolladores de HTML).

Nota: a partir de AIR 1.5.3, el ID de editor queda desfasado. Los ID de editor no se vuelven a asignar a una aplicación de forma automática. Por compatibilidad con versiones anteriores, las aplicaciones pueden continuar para especificar un ID de editor.