Información general sobre el entorno HTML

Adobe AIR 1.0 y posterior

Adobe AIR proporciona un entorno JavaScript completo similar a un navegador con procesador de HTML, modelo de objetos de documento e intérprete de JavaScript. La clase HTMLLoader de AIR representa el entorno JavaScript. En las ventanas HTML, un objeto HTMLLoader contiene todo el contenido HTML y está, a su vez, contenido en un objeto NativeWindow. En el contenido SWF se puede añadir la clase HTMLLoader, que amplía la clase Sprite, a la lista de visualización de un escenario como cualquier otro objeto de visualización. Las propiedades de Adobe® ActionScript® 3.0 de la clase se describen en Uso de scripts en el contenedor HTML de AIR y también en Referencia de ActionScript 3.0 para la plataforma de Adobe Flash . En la arquitectura de Flex la clase HTMLLoader de AIR está agrupada en un componente mx:HTML. El componente mx:HTML amplía la clase UIComponent de modo que se pueda utilizar directamente con otros contenedores de Flex. Por lo demás, el entorno JavaScript dentro del componente mx:HTML es idéntico.

Entorno JavaScript y su relación con el host de AIR

El siguiente esquema ilustra la relación entre el entorno JavaScript y el entorno del motor de ejecución de AIR. Si bien se muestra una sola ventana nativa, una aplicación de AIR puede contener varias ventanas. (Y una sola ventana puede contener varios objetos HTMLLoader).

Ver gráfico a tamaño completo
El entorno JavaScript tiene sus propios objetos Document y Window. El código JavaScript puede interactuar con el entorno del motor de ejecución de AIR a través de las propiedades runtime, nativeWindow y htmlLoader. El código ActionScript puede interactuar con el entorno JavaScript a través de la propiedad de ventana ("window") de un objeto HTMLLoader, que es una referencia al objeto Window de JavaScript. Además, tanto los objetos ActionScript como los objetos JavaScript pueden detectar eventos distribuidos por objetos de AIR y JavaScript.

La propiedad runtime facilita el acceso a las clases API de AIR, lo cual permite crear nuevos objetos de AIR además de acceder a miembros estáticos. Para tener acceso a una API de AIR se añade el nombre de la clase, con el paquete, a la propiedad runtime . Por ejemplo, para crear un objeto File se utilizaría la sentencia:

var file = new window.runtime.filesystem.File();
Nota: el SDK de AIR proporciona un archivo JavaScript, AIRAliases.js , que define los alias más convenientes para las clases de AIR de uso más frecuente. Al importar este archivo se puede utilizar la forma abreviada air.Class en lugar de window.runtime.package.Class. Por ejemplo, se podría crear el objeto File con new air.File() .

El objeto NativeWindow proporciona propiedades para controlar la ventana del escritorio. Desde una página HTML se puede tener acceso al objeto NativeWindow contenedor con la propiedad window.nativeWindow .

El objeto HTMLLoader proporciona propiedades, métodos y eventos para controlar cómo se carga y representa el contenido. Desde una página HTML se puede tener acceso al objeto HTMLLoader principal con la propiedad window.htmlLoader .

Importante: solo las páginas instaladas como parte de una aplicación tienen las propiedades htmlLoader , nativeWindow o runtime y solo cuando se cargan como documento del nivel superior. Estas propiedades no se añaden cuando se carga un documento en un fotograma o en un iframe. (Un documento secundario tiene acceso a estas propiedades en el documento principal siempre que se encuentre en el mismo entorno limitado de seguridad. Por ejemplo, un documento cargado en un fotograma tiene acceso a la propiedad runtime del documento principal con parent.runtime ).

Información sobre seguridad

AIR ejecuta todos los códigos en un entorno limitado de seguridad basado en el dominio de origen. El contenido de la aplicación, que se limita al contenido cargado desde el directorio de instalación de la aplicación, se pone en el entorno limitado de la aplicación . El acceso al entorno del motor de ejecución y las API de AIR solo está disponible para HTML y JavaScript cuando se ejecutan en este entorno limitado. Al mismo tiempo, la mayor parte de la ejecución y evaluación dinámica de JavaScript queda bloqueada en el entorno limitado de la aplicación tras haberse devuelto todos los controladores del evento load de la página.

Se puede asignar una página de la aplicación a un entorno limitado ajeno a la aplicación cargando la página en un fotograma o en un iframe y configurando los atributos del fotograma sandboxRoot y documentRoot que son específicos de AIR. Si se define el valor sandboxRoot en un dominio remoto real, se puede habilitar el contenido del entorno limitado para usar scripts entre contenidos de ese dominio. La asignación de páginas de esta forma resulta útil al cargar contenido remoto y usar scripts con el mismo, como en una aplicación mashup .

Otra forma de posibilitar el uso de scripts entre contenidos de la aplicación y ajenos -y la única manera de brindar acceso a las API de AIR al contenido ajeno- es crear un puente de entorno limitado . Un puente de principal a secundario permite al contenido de un fotograma, iframe o ventana de nivel secundario tener acceso a métodos y propiedades designados que están definidos en el entorno limitado de la aplicación. El caso contrario, de un puente de secundario a principal , permite al contenido de la aplicación tener acceso a métodos y propiedades designados que están definidos en el entorno limitado de nivel secundario. Los puentes de entorno limitado se establecen definiendo las propiedades parentSandboxBridge y childSandboxBridge del objeto window. Para obtener más información, consulte Seguridad HTML en Adobe AIR y Elementos frame e iframe de HTML .

Plug-ins y objetos incorporados

AIR es compatible con el plug-in Adobe® Acrobat®. El usuario debe contar con Acrobat o Adobe® Reader® 8.1 (o superior) para poder visualizar contenido PDF. El objeto HTMLLoader proporciona una propiedad para comprobar si el sistema del usuario puede visualizar PDF. También se puede visualizar el contenido de archivos SWF en el entorno HTML, pero esta capacidad está incorporada en AIR y no utiliza un plug-in externo.

Ningún otro plug-in de Webkit es compatible con AIR.