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
-
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
-
Abra a página default_badge.html em um editor de texto.
-
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
).
|
-
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.
-
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.
-
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.
-
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.
-
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
-
Selecione as opções desejadas e clique no botão Instalar.
-
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()
|
|
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.
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.
|
|
|