Visão geral do ambiente HTML

Adobe AIR 1.0 e posterior

O Adobe AIR fornece um ambiente JavaScript completo do tipo de navegador com um processador de HTML, um modelo de objeto de documento e um intérprete do JavaScript. O ambiente JavaScript é representado pela classe HTMLLoader do AIR. Em janelas HTML, um objeto HTMLLoader contém todo o conteúdo HTML e está, por sua vez, contido em um objeto NativeWindow. Em conteúdo SWF, a classe HTMLLoader, que estende a classe Sprite, pode ser adicionada à lista de exibição de um estágio como qualquer outro objeto de exibição. As propriedades da classe do Adobe® ActionScript® 3.0 são descritas em Script no contêiner HTML do AIR e na Referência do ActionScript 3.0 para a Adobe Flash Platform . Na estrutura do Flex, a classe HTMLLoader do AIR é delimitada em um componente mx:HTML. O componente mx:HTML estende a classe UIComponent, para que possa ser usado diretamente com outros contêineres do Flex. O ambiente JavaScript no componente mx:HTML é, de outro modo, idêntico.

Sobre o ambiente JavaScript e seu relacionamento com o host AIR

O diagrama a seguir ilustra o relacionamento entre o ambiente JavaScript e o ambiente de tempo de execução do AIR. Embora apenas uma única janela nativa seja exibida, um aplicativo do AIR pode conter várias janelas. (E uma única janela pode conter vários objetos HTMLLoader.)

Exibir gráfico inteiro
O ambiente JavaScript possui seus próprios objetos Document e Window. O código JavaScript pode interagir com o ambiente de tempo de execução do AIR por meio das propriedades runtime, nativeWindow e htmlLoader. O código ActionScript pode interagir com o ambiente JavaScript pela propriedade window de um objeto HTMLLoader, que é uma referência ao objeto Window do JavaScript. Além disso, os objetos ActionScript e JavaScript podem ouvir eventos despachados por objetos AIR e JavaScript.

A propriedade runtime fornece acesso a classes API do AIR, permitindo que você crie novos objetos do AIR, bem como membros de classe de acesso (também chamados estáticos). Para acessar uma API do AIR, você adiciona o nome da classe, com pacote, à propriedade runtime . Por exemplo, para criar um objeto File, você usaria a instrução:

var file = new window.runtime.filesystem.File();
Nota: O SDK do AIR fornece um arquivo JavaScript, AIRAliases.js , que define aliases mais convenientes para as classes do AIR usadas mais comumente. Quando você importa esse arquivo, pode usar a forma mais curta air.Class em vez de window.runtime.package.Class. Por exemplo, você poderia criar o objeto File com new air.File() .

O objeto NativeWindow fornece propriedades para controlar a janela da área de trabalho. De uma página HTML, você pode acessar o objeto NativeWindow contido com a propriedade window.nativeWindow .

O objeto HTMLLoader fornece propriedades, métodos e eventos para controlar como o conteúdo é carregado e processado. De uma página HTML, você pode acessar o objeto HTMLLoader pai com a propriedade window.htmlLoader .

Importante: Apenas páginas instaladas como parte de um aplicativo possuem as propriedades htmlLoader , nativeWindow ou runtime e apenas quando carregadas como o documento de nível superior. Essas propriedades não são adicionadas quando um documento é carregado em um frame ou iframe. (Um documento filho pode acessar essas propriedades no documento pai desde que ele esteja na mesma caixa de proteção de segurança. Por exemplo, um documento carregado em um frame poderia acessar a propriedade runtime de seu pai com parent.runtime .)

Sobre a segurança

O AIR executa todos os códigos em uma caixa de proteção de segurança baseada no domínio de origem. O conteúdo do aplicativo, limitado ao conteúdo carregado do diretório de instalação do aplicativo, é colocado na caixa de proteção do aplicativo . O acesso ao ambiente de tempo de execução e às APIs do AIR está disponível apenas para HTML e JavaScript em execução nessa caixa de proteção. Ao mesmo tempo, a maior parte da execução e avaliação dinâmica de JavaScript é bloqueada na caixa de proteção do aplicativo após todos os manipuladores da página de evento load terem sido retornados.

Você pode mapear uma página de aplicativo em uma caixa de proteção que não seja de aplicativo carregando a página em um frame ou iframe e definindo os atributos sandboxRoot e documentRoot específicos do AIR do frame. Definindo o valor sandboxRoot para um domínio remoto real, você pode habilitar o conteúdo da caixa de proteção para cruzar conteúdo de scripts nesse domínio. Mapear páginas dessa maneira pode ser útil ao carregar e fazer o script de conteúdo remoto, como em um aplicativo mash-up .

Outra maneira de permitir que o conteúdo de aplicativo e que não é de aplicativo cruze scripts entre si, e a única maneira de fornecer acesso a conteúdo de não aplicativo às APIs do AIR, é criar uma ponte de caixa de proteção . Uma ponte pai para filho permite conteúdo em um frame filho, iframe ou window para acessar métodos designados e propriedades definidas na caixa de proteção do aplicativo. Por outro lado, uma ponte filho para pai permite que conteúdo de aplicativo acesse métodos e propriedades designadas definidas na caixa de proteção do filho. As pontes de caixa de proteção são estabelecidas pela definição das propriedades parentSandboxBridge e childSandboxBridge do objeto window. Para obter mais informações, consulte Segurança HTML no Adobe AIR e Elementos HTML frame e iframe .

Sobre plug-ins e objetos incorporados

O AIR suporta o plug-in do Adobe® Acrobat®. Os usuários devem ter o Acrobat ou Adobe® Reader® 8.1 (ou superior) para exibir conteúdo PDF. O objeto HTMLLoader fornece uma propriedade para verificar se o sistema de um usuário pode exibir PDF. O conteúdo de arquivo SWF também pode ser exibido no ambiente HTML, mas esse recurso é incorporado ao AIR e não usa um plug-in externo.

Nenhum outro plug-in de Webkit é suportado no AIR.