API no navegador AIR.SWF

Personalização da instalação contínua badge.swf

Além de usar o arquivo badge.swf fornecido com o SDK, você pode criar seu próprio arquivo SWF para usar em uma página do navegador. Seu arquivo SWF personalizado pode interagir com o runtime das seguintes maneiras:

Esses recursos são todos fornecidos ao chamar as APIs em um arquivo SWF hospedado em adobe.com: air.swf. Você pode personalizar o arquivo badge.swf e chamar as APIs air.swf a partir do seu próprio arquivo SWF.

Além disso, um arquivo SWF em execução no navegador pode se comunicar com um aplicativo do AIR em execução usando a classe LocalConnection. Para mais informações, consulte Comunicação com outras instâncias do Flash Player e AIR (para desenvolvedores em ActionScript) ou Communicating with other Flash Player and AIR instances (para desenvolvedores em HTML).

Importante: Os recursos descritos nesta seção (e as APIs no arquivo air.swf) exigem que o usuário final tenha a atualização 3 do Adobe® Flash® Player 9 (ou superior) instalada no navegador da Web no Windows ou Mac OS. No Linux, o recurso de instalação contínua requer o Flash Player 10 (versão 10,0,12,36 ou posterior). Você pode escrever códigos para verificar a versão instalada do Flash Player e fornecer uma interface alternativa ao usuário se a versão exigida do Flash Player não for instalada. Por exemplo, se uma versão mais antiga do Flash Player estiver instalada, você poderia fornecer um link para a versão de download do arquivo AIR (em vez de usar o arquivo badge.swf ou a API do air.swf para instalar um aplicativo).

Usando o arquivo badge.swf para instalar um aplicativo do AIR

Incluído no SDK do AIR e no SDK do Flex está um arquivo badge.swf, que permite usar facilmente o recurso de instalação direta. O badge.swf pode instalar o runtime e um aplicativo do AIR de um link em uma página da Web. O arquivo badge.swf e seu código-fonte são fornecidos a você para distribuição no seu site da Web.

Incorpore o arquivo badge.swf em uma página da Web

  1. Localize os seguintes arquivos, fornecidos no diretório samples/badge do SDK do AIR ou do SDK do Flex, e adicione-os no seu servidor Web.

    • badge.swf

    • default_badge.html

    • AC_RunActiveContent.js

  2. Abra a página default_badge.html em um editor de texto.

  3. Na página default_badge.html, na função JavaScript AC_FL_RunContent() , ajuste as definições do parâmetro FlashVars para as seguintes:

    Parâmetro

    Descrição

    appname

    O nome do aplicativo, exibido pelo arquivo SWF quando o runtime não está instalado.

    appurl

    (Obrigatório). A URL do arquivo AIR a ser obtido por download. Você deve usar uma URL absoluta, e não relativa.

    airversion

    (Obrigatório). Para a versão 1.0 do runtime, defina isso para 1.0.

    imageurl

    A URL da imagem (opcional) para exibir no crachá.

    buttoncolor

    A cor do botão de download (especificada como um valor hexadecimal, como FFCC00 ).

    messagecolor

    A cor da mensagem de texto exibida abaixo do botão quando o runtime não está instalado (especificada como um valor hexadecimal, como FFCC00 ).

  4. O tamanho mínimo do arquivo badge.swf é de 217 pixels de largura por 180 pixels de altura. Ajuste os valores dos parâmetros width e height da função AC_FL_RunContent() para se adequar às suas necessidades.

  5. Renomeie o arquivo default_badge.html e ajuste seu código (ou inclua-o em outra página HTML) para se adequar às suas necessidades.

Nota: Para a tag embed de HTML que carrega o arquivo badge.swf, não defina o atributo wmode ; deixe-o definido como a configuração padrão ( "window" ). Outras configurações wmode vão impedir a instalação em alguns sistemas. Além disso, usar outras configurações wmode produzem um erro: “Erro #2044: ErrorEvent não tratado:. text=Error #2074: O palco está muito pequeno para baixar a iu.”

Você também pode editar e recompilar o arquivo badge.swf. Para obter detalhes, consulte Modifique o arquivo badge.swf .

Instale o aplicativo do AIR a partir de um link de instalação direta em uma página da Web

Depois de ter adicionado o link de instalação direta a uma página, o usuário pode instalar o aplicativo do AIR clicando no link no arquivo SWF.

  1. Navegue até a página HTML em um navegador da Web que tenha Flash Player (versão 9 atualização 3 ou posterior no Windows e Mac OS ou versão 10 no Linux) instalada.

  2. Na página da Web, clique no link no arquivo badge.swf.

    • Se tiver instalado o runtime, passe para a próxima etapa.

    • Se não tiver instalado o runtime, uma caixa de diálogo será exibida perguntando se você gostaria de instalá-lo. Instale o runtime (consulte Instalação do Adobe AIR ) e continue com a etapa seguinte.

  3. Na janela de instalação, deixe as configurações padrão selecionadas e clique em Continuar.

    Em um computador Windows, o AIR faz automaticamente o seguinte:

    • Instala o aplicativo em c:\Arquivos de Programas\

    • Cria um atalho na área de trabalho para o aplicativo

    • Cria um atalho no menu Iniciar

    • Adiciona uma entrada para o aplicativo no Painel de Controle Adicionar ou Remover Programas

    No Mac OS, o instalador adiciona o aplicativo ao diretório Aplicativos (por exemplo, no diretório /Aplicativos no Mac OS).

    Em um computador Linux, o AIR faz automaticamente o seguinte:

    • Instala o aplicativo na /saída.

    • Cria um atalho na área de trabalho para o aplicativo

    • Cria um atalho no menu Iniciar

    • Adicione uma entrada para o aplicativo no gerenciador de pacotes do sistema

  4. Selecione as opções desejadas e clique no botão Instalar.

  5. Quando a instalação estiver concluída, clique em Concluir.

Modifique o arquivo badge.swf

O SDK do AIR e o SDK do Flex oferecem os arquivos de origem para o arquivo badge.swf. Esses arquivos estão incluídos na pasta samples/badge do SDK:

Arquivos de origem

Descrição

badge.fla

O arquivo de origem do Flash usado para compilar o arquivo badge.swf. O arquivo badge.fla é compilado em um arquivo do SWF 9 (que pode ser carregado no Flash Player).

AIRBadge.as

Uma classe do ActionScript 3.0 que define a classe base usada no arquivo basdge.fla.

Você pode utilizar o Flash Professional para projetar novamente a interface visual do arquivo badge.fla.

A função de construtor AIRBadge() , definida na classe AIRBadge, carrega o arquivo air.swf hospedado em http://airdownload.adobe.com/air/browserapi/air.swf. O arquivo air.swf inclui código para usar o recurso de instalação direta.

O método onInit() (na classe AIRBadge) é invocado quando o arquivo air.swf é carregado com sucesso:

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

O código define a variável global _air para a classe principal do arquivo air.swf carregado. Essa classe inclui os seguintes métodos públicos, que o arquivo badge.swf acessa para chamar a funcionalidade de instalação direta:

Método

Descrição

getStatus()

Determina se o runtime é instalado (ou pode ser instalado) no computador. Para obter detalhes, consulte Verificar se o runtime está instalado .
  • runtimeVersion — Uma string que indica a versão do runtime (como "1.0.M6" ) exigida pelo aplicativo a ser instalado.

installApplication()

Instala o aplicativo especificado na máquina do usuário. Para obter detalhes, consulte Instalação de um aplicativo do AIR do navegador .

  • url — Uma sequência de caracteres que define a URL. Você deve usar um caminho de URL absoluta, e não relativa.

  • runtimeVersion — Uma string que indica a versão do runtime (como "2.5." ) exigida pelo aplicativo a ser instalado.

  • arguments — Argumentos a serem transmitidos ao aplicativo se ele for iniciado na instalação. O aplicativo é iniciado na instalação se o elemento allowBrowserInvocation é definido como true no arquivo do descritor do aplicativo. (Para obter mais informações sobre o arquivo do descritor do aplicativo, consulte Arquivos descritores do aplicativo do AIR .) Se o aplicativo for iniciado como resultado de uma instalação direta do navegador (com o usuário optando por iniciar na instalação), o objeto NativeApplication do aplicativo despacha um objeto BrowserInvokeEvent apenas se argumentos forem transmitidos. Considere as implicações de segurança de dados que você transmite ao aplicativo. Para obter detalhes, consulte Inicialização de um aplicativo do AIR instalado do navegador .

As configurações para url e runtimeVersion são transmitidas no arquivo SWF pelas configurações do FlashVars na página HTML do contêiner.

Se o aplicativo for iniciado automaticamente na instalação, você poderá usar a comunicação LocalConnection para ter o aplicativo instalado. Entre em contato com o arquivo badge.swf na invocação. Para mais informações, consulte Comunicação com outras instâncias do Flash Player e AIR (para desenvolvedores em ActionScript) ou Communicating with other Flash Player and AIR instances (para desenvolvedores em HTML).

Você também pode chamar o método getApplicationVersion() do arquivo air.swf para verificar se um aplicativo está instalado. Você pode chamar esse método antes do processo de instalação do aplicativo ou após a instalação ser iniciada. Para obter detalhes, consulte Verificar por uma página da Web se um aplicativo do AIR está instalado .

Carregar o arquivo air.swf

Você pode criar seu próprio arquivo do SWF que usa as APIs no arquivo air.swf para interagir com o runtime e aplicativos do AIR de uma página da Web em um navegador. O arquivo air.swf é hospedado em http://airdownload.adobe.com/air/browserapi/air.swf. Para se referir às APIs do air.swf do seu arquivo SWF, carregue o arquivo air.swf no mesmo domínio de aplicativo do seu arquivo SWF. O código a seguir mostra um exemplo de como carregar o arquivo air.swf no domínio do aplicativo do arquivo SWF que está sendo carregado:

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

Depois que o arquivo air.swf estiver carregado (quando o objeto Loader do objeto contentLoaderInfo enviar o evento init ), você pode chamar APIs air.swf, descritas nas seções que seguem.

Nota: O arquivo badge.swf, fornecido com o SDK do Flex e do AIR, carrega automaticamente o arquivo air.swf. Consulte Usando o arquivo badge.swf para instalar um aplicativo do AIR . As instruções desta seção se aplicam à criação do seu próprio arquivo do SWF que carrega o arquivo air.swf.

Verificar se o runtime está instalado

Um arquivo SWF pode verificar se o runtime está instalado chamando o método getStatus( ) no arquivo air.swf carregado de http://airdownload.adobe.com/air/browserapi/air.swf. Para obter detalhes, consulte Carregar o arquivo air.swf .

Depois que o arquivo air.swf for carregado, o arquivo SWF poderá chamar o método getStatus( ) do arquivo air.swf como a seguir:

var status:String = airSWF.getStatus();

O método getStatus() retorna um dos seguintes valores de sequências de caracteres, com base no status do runtime no computador:

Valor de string

Descrição

"available"

O runtime pode ser instalado nesse computador, mas não está instalado no momento.

"unavailable"

O runtime não pode ser instalado neste computador.

"installed"

O runtime está instalado nesse computador.

O método getStatus() lança um erro se a versão necessária do Flash Player (versão 9 atualização 3 ou posterior no Windows e Mac OS ou versão 10 no Linux) não estiver instalada no navegador.

Verificar por uma página da Web se um aplicativo do AIR está instalado

Um arquivo SWF pode verificar se um aplicativo do AIR (com um ID de aplicativo e um ID de editor correspondentes) está instalado chamando o método getApplicationVersion( ) no arquivo air.swf carregado de http://airdownload.adobe.com/air/browserapi/air.swf. Para obter detalhes, consulte Carregar o arquivo air.swf .

Depois que o arquivo air.swf for carregado, o arquivo SWF poderá chamar o método getApplicationVersion( ) do arquivo air.swf como a seguir:

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. 
    } 
}

O método getApplicationVersion() possui os seguintes parâmetros:

Parâmetros

Descrição

appID

O ID desse aplicativo. Para obter detalhes, consulte id .

pubID

O ID do editor do aplicativo. Para obter detalhes, consulte publisherID . Se o aplicativo e em questão não possuir um ID do editor, defina o parâmetro pubID para uma sequência de caracteres vazia ("").

retorno de chamada

Uma função de retorno de chamada para servir como a função do manipulador. O método getApplicationVersion() opera de modo assíncrono e ao detectar essa versão instalada (ou a falta de uma versão instalada), esse método de retorno de chamada é invocado. A definição do método de retorno de chamada deve incluir um parâmetro, uma sequência de caracteres, definida para a sequência de caracteres da versão do aplicativo instalado. Se o aplicativo não for instalado, um valor de nulo será transmitido à função, como ilustrado no exemplo de código anterior.

O método getApplicationVersion() lança um erro se a versão necessária do Flash Player (versão 9 atualização 3 ou posterior no Windows e Mac OS ou versão 10 no Linux) não estiver instalada no navegador.

Nota: A partir do AIR 1.5.3, o ID do editor não é mais utilizado. Os IDs de publicação não são mais atribuídos a nenhum aplicativo automaticamente. Para manter a compatibilidade com versões anteriores, os aplicativos podem a continuar a especificar o ID do editor.

Instalação de um aplicativo do AIR do navegador

Um arquivo SWF pode instalar um aplicativo do AIR chamando o método installApplication( ) no arquivo air.swf carregado de http://airdownload.adobe.com/air/browserapi/air.swf . Para obter detalhes, consulte Carregar o arquivo air.swf .

Depois que o arquivo air.swf for carregado, o arquivo SWF poderá chamar o método installApplication( ) do arquivo air.swf como no código a seguir:

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

O método installApplication() instala o aplicativo especificado na máquina do usuário. Esse método possui os seguintes parâmetros:

Parâmetro

Descrição

url

Uma sequência de caracteres que define a URL do arquivo AIR a instalar. Você deve usar um caminho de URL absoluta, e não relativa.

runtimeVersion

Uma sequência de caracteres que indica a versão do runtime (como "1.0") exigida pelo aplicativo a ser instalado.

argumentos

Uma matriz de argumentos a serem transmitidos ao aplicativo se ele for iniciado na instalação. Somente caracteres alfanuméricos são reconhecidos nos argumentos. Se for necessário passar outros valores, considere o uso de um esquema de codificação.

O aplicativo é iniciado na instalação se o elemento allowBrowserInvocation é definido como true no arquivo do descritor do aplicativo. (Para obter mais informações sobre o arquivo do descritor do aplicativo, consulte Arquivos descritores do aplicativo do AIR .) Se o aplicativo for iniciado como resultado de uma instalação direta do navegador (com o usuário optando por iniciar na instalação), o objeto NativeApplication do aplicativo despacha um objeto BrowserInvokeEvent apenas se argumentos tiverem sido transmitidos. Para obter detalhes, consulte Inicialização de um aplicativo do AIR instalado do navegador .

O método installApplication() pode operar apenas quando chamado no manipulador de eventos para um evento do usuário, como um clique do mouse.

O método installApplication() lança um erro se a versão necessária do Flash Player (versão 9 atualização 3 ou posterior no Windows e Mac OS ou versão 10 no Linux) não estiver instalada no navegador.

No Mac OS, para instalar uma versão atualizada de um aplicativo, o usuário precisa ter privilégios adequados do sistema para instalar no diretório do aplicativo (e privilégios administrativos se o aplicativo atualizar o runtime). No Windows, o usuário deve ter privilégios administrativos.

Você também pode chamar o método getApplicationVersion() do arquivo air.swf para verificar se um aplicativo já está instalado. Você pode chamar esse método antes que o processo de instalação do aplicativo seja iniciado ou após a instalação ser iniciada. Para obter detalhes, consulte Verificar por uma página da Web se um aplicativo do AIR está instalado . Depois que o aplicativo estiver em execução, ele pode se comunicar com o conteúdo do SWF no navegador usando a classe LocalConnection. Para mais informações, consulte Comunicação com outras instâncias do Flash Player e AIR (para desenvolvedores em ActionScript) ou Communicating with other Flash Player and AIR instances (para desenvolvedores em HTML).

Inicialização de um aplicativo do AIR instalado do navegador

Para usar o recurso de invocação do navegador (permitindo que ele seja iniciado do navegador), o arquivo do descritor do aplicativo de destino deve incluir a seguinte configuração:

<allowBrowserInvocation>true</allowBrowserInvocation>

Para obter mais informações sobre o arquivo do descritor do aplicativo, consulte Arquivos descritores do aplicativo do AIR .

Um arquivo SWF no navegador pode iniciar um aplicativo do AIR chamando o método launchApplication( ) no arquivo air.swf carregado de http://airdownload.adobe.com/air/browserapi/air.swf. Para obter detalhes, consulte Carregar o arquivo air.swf .

Depois que o arquivo air.swf for carregado, o arquivo SWF poderá chamar o método launchApplication( ) do arquivo air.swf como no código a seguir:

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

O método launchApplication() é definido no nível superior do arquivo air.swf (carregado no domínio do aplicativo do arquivo SWF da interface do usuário). Chamar esse método faz com que o AIR inicie o aplicativo especificado (se ele for instalado e a invocação do navegador for permitida, pela configuração allowBrowserInvocation no arquivo do descritor do aplicativo). O método tem os seguintes parâmetros:

Parâmetro

Descrição

appID

O ID do aplicativo a ser iniciado. Para obter detalhes, consulte id .

pubID

O ID do editor do aplicativo a ser iniciado. Para obter detalhes, consulte publisherID . Se o aplicativo e em questão não possuir um ID do editor, defina o parâmetro pubID para uma sequência de caracteres vazia ("").

argumentos

Uma matriz de argumentos para transmitir ao aplicativo. O objeto NativeApplication do aplicativo despacha um evento BrowserInvokeEvent que possui uma propriedade de argumentos definida para essa matriz. Somente caracteres alfanuméricos são reconhecidos nos argumentos. Se for necessário passar outros valores, considere o uso de um esquema de codificação.

O método launchApplication() pode operar apenas quando chamado no manipulador de eventos para um evento do usuário, como um clique do mouse.

O método launchApplication() lança um erro se a versão necessária do Flash Player (versão 9 atualização 3 ou posterior no Windows e Mac OS ou versão 10 no Linux) não estiver instalada no navegador.

Se o elemento allowBrowserInvocation for definido como false no arquivo do descritor do aplicativo, chamar o método launchApplication() não terá efeito.

Antes de apresentar a interface do usuário para iniciar o aplicativo, você pode desejar chamar o método getApplicationVersion( ) no arquivo air.swf. Para obter detalhes, consulte Verificar por uma página da Web se um aplicativo do AIR está instalado .

Quando o aplicativo é invocado pelo recurso de invocação do navegador, o objeto NativeApplication do aplicativo despacha um objeto BrowserInvokeEvent. Para obter detalhes, consulte Invocação de um aplicativo do AIR do navegador (para desenvolvedores em ActionScript) ou Invoking an AIR application from the browser (para desenvolvedores em HTML).

Se você usa o recurso de invocação do navegador, certifique-se de considerar implicações de segurança. Estas implicações são descrita em Invocação de um aplicativo do AIR do navegador (para desenvolvedores em ActionScript) e Invoking an AIR application from the browser (para desenvolvedores em HTML).

Depois que o aplicativo estiver em execução, ele pode se comunicar com o conteúdo do SWF no navegador usando a classe LocalConnection. Para mais informações, consulte Comunicação com outras instâncias do Flash Player e AIR (para desenvolvedores em ActionScript) ou Communicating with other Flash Player and AIR instances (para desenvolvedores em HTML).

Nota: A partir do AIR 1.5.3, o ID do editor não é mais utilizado. Os IDs de publicação não são mais atribuídos a nenhum aplicativo automaticamente. Para manter a compatibilidade com versões anteriores, os aplicativos podem a continuar a especificar o ID do editor.