API interna al browser AIR.SWF

Personalizzazione del file badge.swf per l'installazione invisibile

Oltre a utilizzare il file badge.swf fornito con SDK, è possibile creare un file SWF personalizzato da utilizzare in una pagina browser. Tale file personalizzato può interagire con il runtime nei modi seguenti:

Queste funzionalità vengono tutte fornite chiamando le API in un file SWF ospitato su adobe.com: air.swf. Potete personalizzare il file badge.swf e chiamare le API air.swf dal vostro file SWF.

Inoltre, un file SWF in esecuzione nel browser può comunicare con un'applicazione AIR in esecuzione mediante la classe LocalConnection. Per ulteriori informazioni, vedete Comunicazione con altre istanze di Flash Player e Adobe AIR (sviluppatori ActionScript) o Communicating with other Flash Player and AIR instances (sviluppatori HTML).

Importante: per l'esecuzione delle funzionalità descritte in questa sezione e delle API nel file air.swf, è necessario che nel browser Web dell'utente finale, in Windows o Mac OS, sia installato Adobe® Flash® Player 9 aggiornamento 3 o una versione successiva. In Linux, la funzione di installazione invisibile richiede Flash Player 10 (versione 10,0,12,36 o successiva). È possibile scrivere il codice per verificare la versione installata di Flash Player e fornire all'utente un'interfaccia alternativa se la versione richiesta di Flash Player non è installata. Ad esempio, se è installata una versione precedente di Flash Player, è possibile fornire un collegamento alla versione di download del file AIR invece di utilizzare il file badge.swf o l'API air.swf per installare un'applicazione.

Uso del file badge.swf per l'installazione di un'applicazione AIR

In AIR SDK e Flex SDK è incluso un file badge.swf che consente di utilizzare facilmente la funzionalità di installazione invisibile. Tale file consente di installare il runtime e un'applicazione AIR da un collegamento in una pagina Web. Il file badge.swf file e il relativo codice sorgente vengono forniti per la distribuzione sul vostro sito Web.

Incorporare il file badge.swf in una pagina Web

  1. Individuate i seguenti file presenti nella directory samples/badge di AIR SDK o di Flex SDK, quindi aggiungeteli al server Web.

    • badge.swf

    • default_badge.html

    • AC_RunActiveContent.js

  2. Aprite la pagina default_badge.html in un editor di testo.

  3. Nella funzione AC_FL_RunContent() JavaScript della pagina default_badge.html, regolate le definizioni dei parametri FlashVars per i seguenti elementi:

    Parametro

    Descrizione

    appname

    Il nome dell'applicazione, visualizzato dal file SWF quando il runtime non è installato.

    appurl

    (Obbligatorio) L'URL del file AIR da scaricare. Utilizzate un URL assoluto, non relativo.

    airversion

    (Obbligatorio) Per la versione 1.0 del runtime, impostare il valore su 1.0.

    imageurl

    L'URL dell'immagine (facoltativo) da visualizzare nel badge.

    buttoncolor

    Il colore del pulsante di download, specificato come valore esadecimale, ad esempio FFCC00 .

    messagecolor

    Il colore del messaggio di testo visualizzato sotto il pulsante quando il runtime non è installato (specificato come valore esadecimale, ad esempio FFCC00 ).

  4. La dimensione minima del file badge.swf è 217 pixel di larghezza per 180 pixel di altezza. Regolate i valori dei parametri width e height della funzione AC_FL_RunContent() in modo da adattarli alle proprie esigenze.

  5. Rinominate il file default_badge.html e regolatene il codice (oppure includetelo in un'altra pagina HTML) per adattarlo alle vostre esigenze.

Nota: per il tag HTML embed che carica il file badge.swf non impostate l'attributo wmode , ma lasciate il tag impostato sul valore predefinito ( "window" ). Impostazioni wmode diverse potrebbero impedire l'installazione in alcuni sistemi. L'uso di impostazioni wmode diverse produce inoltre un errore: "Error #2044: Unhandled ErrorEvent" (Errore 2044: evento di errore non gestito). text=Error #2074: The stage is too small to fit the download ui.” (lo stage è troppo ridotto per l'interfaccia utente di download).

È anche possibile modificare e ricompilare il file badge.swf. Per informazioni dettagliate, vedete Modificare il file badge.swf .

Installare l'applicazione AIR da un collegamento di installazione invisibile in una pagina Web

Dopo aver aggiunto il collegamento di installazione invisibile in una pagina, l'utente può installare l'applicazione AIR facendo clic sul collegamento nel file SWF.

  1. Accedete alla pagina HTML tramite un browser Web con installato Flash Player (versione 9 aggiornamento 3 o successiva in Windows e Mac OS o versione 10 in Linux).

  2. Nella pagina Web, fate clic sul collegamento nel file badge.swf.

    • Se è stato installato il runtime, passate alla fase successiva.

    • In caso contrario, viene visualizzata una finestra di dialogo che chiede se si desidera installare il runtime. Installate il runtime (vedete Installazione di Adobe AIR ), quindi procedete con il passaggio successivo.

  3. Nella finestra Installazione, lasciate selezionate le impostazioni predefinite, quindi fate clic su Continua.

    In un computer con sistema operativo Windows, AIR effettua automaticamente le seguenti operazioni:

    • Installa l'applicazione nella directory c:\Programmi\.

    • Crea un collegamento al desktop per l'applicazione.

    • Crea un collegamento al menu Start.

    • Aggiunge una voce per l'applicazione in Installazione applicazioni di Pannello di controllo.

    In Mac OS, il programma di installazione aggiunge l'applicazione alla directory Applicazioni (ad esempio, nella directory /Applicazioni di Mac OS).

    In un computer con sistema operativo Linux, AIR effettua automaticamente le seguenti operazioni:

    • Installa l'applicazione in /opt.

    • Crea un collegamento al desktop per l'applicazione.

    • Crea un collegamento al menu Start.

    • Aggiunge una voce relativa all'applicazione nello strumento di gestione pacchetti di sistema.

  4. Selezionate le opzioni desiderate, quindi fate clic sul pulsante Installa.

  5. Al termine dell'installazione, scegliete Fine.

Modificare il file badge.swf

Flex SDK e AIR SDK forniscono i file di origine per il file badge.swf. Tali file sono inclusi nella cartella samples/badge di SDK.

File di origine

Descrizione

badge.fla

Il file di origine di Flash utilizzato per la compilazione di badge.swf. Il file badge.fla viene compilato in un file SWF 9, che è possibile caricare in Flash Player.

AIRBadge.as

Classe di ActionScript 3.0 che definisce la classe di base utilizzata nel file badge.fla.

È possibile utilizzare Flash Professional per riprogettare l'interfaccia visuale del file badge.fla.

La funzione di costruzione AIRBadge() , definita nella classe AIRBadge, carica il file air.swf ospitato in http://airdownload.adobe.com/air/browserapi/air.swf. Il file air.swf include il codice per l'utilizzo della funzionalità di installazione invisibile.

Il metodo onInit() nella classe AIRBadge viene chiamato dopo che il file air.swf è stato caricato:

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

Il codice imposta la variabile globale _air sulla classe principale del file air.swf caricato. Tale classe include i seguenti metodi pubblici a cui accede il file badge.swf per chiamare la funzionalità di installazione invisibile:

Metodo

Descrizione

getStatus()

Determina se il runtime è installato sul computer o se può essere installato. Per informazioni dettagliate, vedete Verificare se il runtime è installato .
  • runtimeVersion : una stringa che indica la versione del runtime (ad esempio, "1.0.M6" ) richiesta dall'applicazione da installare.

installApplication()

Installa l'applicazione specificata sul computer dell'utente. Per informazioni dettagliate, vedete Installazione di un'applicazione AIR dal browser .

  • url : una stringa che definisce l'URL. Utilizzare un percorso di URL assoluto, non relativo.

  • runtimeVersion : una stringa che indica la versione del runtime (ad esempio, "2.5." ) richiesta dall'applicazione da installare.

  • arguments : argomenti da trasmettere all'applicazione se viene avviata all'installazione. L'applicazione viene avviata all'installazione se l'elemento allowBrowserInvocation viene impostato su true nel file descrittore dell'applicazione. (Per ulteriori informazioni sul file descrittore dell'applicazione, vedete File descrittori delle applicazioni AIR .) Se l'applicazione viene avviata come risultato di un'installazione invisibile dal browser (con l'utente che sceglie di effettuare l'avvio all'installazione), l'oggetto NativeApplication dell'installazione invia un evento BrowserInvokeEvent solo se vengono trasmessi gli argomenti. Si considerino le implicazioni di sicurezza dei dati che vengono trasmessi all'applicazione. Per informazioni dettagliate, vedete Avvio dal browser di un'applicazione AIR installata .

Le impostazioni per url e runtimeVersion vengono trasmesse nel file SWF tramite le impostazioni di FlashVars nella pagina contenitore HTML.

Se l'applicazione viene avviata automaticamente all'installazione, è possibile utilizzare la comunicazione LocalConnection per fare in modo che l'applicazione installata contatti il file badge.swf alla chiamata. Per ulteriori informazioni, vedete Comunicazione con altre istanze di Flash Player e Adobe AIR (sviluppatori ActionScript) o Communicating with other Flash Player and AIR instances (sviluppatori HTML).

È anche possibile chiamare il metodo getApplicationVersion() del file air.swf per verificare se un'applicazione è installata. La chiamata al metodo può essere effettuata prima del processo di installazione o dopo che tale processo è stato avviato. Per informazioni dettagliate, vedete Verificare da una pagina Web se un'applicazione AIR è installata .

Caricamento del file air.swf

È possibile creare un file SWF personalizzato che utilizza le API nel file air.swf per interagire con il runtime e le applicazioni AIR da una pagina Web in un browser. Il file air.swf è ospitato in http://airdownload.adobe.com/air/browserapi/air.swf. Per fare riferimento alle API di air.swf API dal file SWF personalizzato, caricate air.swf nello stesso dominio dell'applicazione del file SWF. Nel codice seguente viene mostrato un esempio di caricamento del file air.swf nel dominio dell'applicazione del file SWF:

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

Dopo che il file air.swf è stato caricato (quando l'oggetto contentLoaderInfo dell'oggetto Loader invia l'evento init ), potete chiamare le API di air.swf, descritte nelle sezioni che seguono.

Nota: il file badge.swf fornito con AIR SDK e Flex SDK carica automaticamente il file air.swf. Vedete Uso del file badge.swf per l'installazione di un'applicazione AIR . Le istruzioni fornite in questa sezione si applicano alla creazione del file SWF personalizzato che carica il file air.swf.

Verificare se il runtime è installato

Un file SWF può verificare se il runtime è installato effettuando la chiamata al metodo getStatus( ) nel file air.swf caricato da http://airdownload.adobe.com/air/browserapi/air.swf. Per informazioni dettagliate, vedete Caricamento del file air.swf .

Dopo che il file air.swf è stato caricato, il file SWF può effettuare la chiamata al metodo getStatus( ) del file air.swf, come nell'esempio seguente:

var status:String = airSWF.getStatus();

Il metodo getStatus() restituisce uno dei seguenti valori di stringa. in base allo stato del runtime sul computer:

Valore stringa

Descrizione

"available"

Il runtime può essere installato ma attualmente non è installato in questo computer.

"unavailable"

Il runtime non può essere installato in questo computer.

"installed"

Il runtime è installato su questo computer.

Il metodo getStatus() genera un errore se la versione richiesta di Flash Player (versione 9 aggiornamento 3 o successiva in Windows e Mac OS o versione 10 in Linux) non è installata nel browser.

Verificare da una pagina Web se un'applicazione AIR è installata

Un file SWF può verificare se un'applicazione AIR (con un ID editore e un ID applicazione corrispondente) è installata effettuando una chiamata al metodo getApplicationVersion( ) nel file air.swf file caricato da http://airdownload.adobe.com/air/browserapi/air.swf. Per informazioni dettagliate, vedete Caricamento del file air.swf .

Dopo che il file air.swf è stato caricato, il file SWF può effettuare la chiamata al metodo getApplicationVersion( ) del file air.swf, come nell'esempio seguente:

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

Il metodo getApplicationVersion() presenta i seguenti parametri:

Parametri

Descrizione

appID

L'ID applicazione dell'applicazione. Per informazioni dettagliate, vedete id .

pubID

L'ID editore dell'applicazione. Per informazioni dettagliate, vedete publisherID . Se l'applicazione in questione non dispone di un ID editore, impostate il parametro pubID su una stringa vuota (“”).

callback

Una funzione callback che serva da funzione di gestore. Il metodo getApplicationVersion() funziona in modo asincrono e al rilevamento della versione installata (o della mancanza di una versione installata) viene chiamato questo metodo di callback. La definizione del metodo di callback deve includere un solo parametro, una stringa, impostata sulla stringa di versione dell'applicazione installata. Se l'applicazione non è installata, alla funzione viene trasmesso un valore null, come illustrato nel precedente esempio di codice.

Il metodo getApplicationVersion() genera un errore se la versione richiesta di Flash Player (versione 9 aggiornamento 3 o successiva in Windows e Mac OS o versione 10 in Linux) non è installata nel browser.

Nota: a partire da AIR 1.5.3, l'ID editore è stato dichiarato obsoleto. Gli ID editore non vengono più assegnati in automatico alle applicazioni. Per garantire la compatibilità retroattiva, le applicazioni possono comunque continuare a specificare un ID editore.

Installazione di un'applicazione AIR dal browser

Un file SWF può installare un'applicazione AIR effettuando una chiamata al metodo installApplication( ) nel file air.swf caricato da http://airdownload.adobe.com/air/browserapi/air.swf . Per informazioni dettagliate, vedete Caricamento del file air.swf .

Dopo che il file air.swf è stato caricato, il file SWF può effettuare la chiamata al metodo installApplication( ) del file air.swf, come nel codice seguente:

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

Il metodo installApplication() installa l'applicazione specificata sul computer dell'utente. Il metodo dispone dei parametri seguenti:

Parametro

Descrizione

url

Stringa che definisce l'URL del file AIR da installare. Utilizzare un percorso di URL assoluto, non relativo.

runtimeVersion

Stringa che indica la versione del runtime (ad esempio, "1.0") richiesta dall'applicazione da installare.

arguments

Array di argomenti da trasmettere all'applicazione se viene avviata all'installazione. Negli argomenti vengono riconosciuti solo i caratteri alfanumerici. Per passare valori diversi, è possibile utilizzare uno schema di codifica.

L'applicazione viene avviata all'installazione se l'elemento allowBrowserInvocation viene impostato su true nel file descrittore dell'applicazione. (Per ulteriori informazioni sul file descrittore dell'applicazione, vedete File descrittori delle applicazioni AIR .) Se l'applicazione viene avviata come risultato di un'installazione invisibile dal browser (con l'utente che sceglie di effettuare l'avvio all'installazione), l'oggetto NativeApplication dell'installazione invia un evento BrowserInvokeEvent solo se sono stati trasmessi gli argomenti. Per informazioni dettagliate, vedete Avvio dal browser di un'applicazione AIR installata .

Il metodo installApplication() può funzionare solo quando viene chiamato nel gestore di eventi per un evento utente (ad esempio, un clic del mouse).

Il metodo installApplication() genera un errore se la versione richiesta di Flash Player (versione 9 aggiornamento 3 o successiva in Windows e Mac OS o versione 10 in Linux) non è installata nel browser.

In Mac OS, per installare una versione aggiornata di un'applicazione sono necessari privilegi di sistema adeguati per effettuare l'installazione nella directory delle applicazioni, nonché privilegi di amministratore se l'applicazione aggiorna il runtime. In Windows, sono richiesti privilegi di amministratore.

È anche possibile chiamare il metodo getApplicationVersion() del file air.swf per verificare se un'applicazione è già installata. La chiamata al metodo può essere effettuata prima del processo di installazione o dopo che tale processo è stato avviato. Per informazioni dettagliate, vedete Verificare da una pagina Web se un'applicazione AIR è installata . Quando l'applicazione è stata posta in esecuzione è in grado di comunicare con il contenuto SWF del browser mediante la classe LocalConnection. Per ulteriori informazioni, vedete Comunicazione con altre istanze di Flash Player e Adobe AIR (sviluppatori ActionScript) o Communicating with other Flash Player and AIR instances (sviluppatori HTML).

Avvio dal browser di un'applicazione AIR installata

Per utilizzare la funzionalità di chiamata browser, che consente l'avvio dal browser, il file descrittore dell'applicazione di destinazione deve includere la seguente impostazione:

<allowBrowserInvocation>true</allowBrowserInvocation>

(Per ulteriori informazioni sul file descrittore dell'applicazione, vedete File descrittori delle applicazioni AIR .)

Un file SWF può avviare un'applicazione AIR nel browser effettuando una chiamata al metodo launchApplication( ) nel file air.swf caricato da http://airdownload.adobe.com/air/browserapi/air.swf. Per informazioni dettagliate, vedete Caricamento del file air.swf .

Dopo che il file air.swf è stato caricato, il file SWF può effettuare la chiamata al metodo launchApplication( ) del file air.swf, come nel codice seguente:

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

Il metodo launchApplication() è definito al primo livello del file air.swf, caricato nel dominio dell'applicazione del file SWF dell'interfaccia utente. La chiamata a questo metodo determina l'avvio dell'applicazione specificata (se è installata e se è consentita la chiamata browser tramite l'impostazione allowBrowserInvocation nel file descrittore dell'applicazione). Il metodo dispone dei parametri seguenti:

Parametro

Descrizione

appID

L'ID applicazione dell'applicazione da avviare. Per informazioni dettagliate, vedete id .

pubID

L'ID editore dell'applicazione da avviare. Per informazioni dettagliate, vedete publisherID . Se l'applicazione in questione non dispone di un ID editore, impostate il parametro pubID su una stringa vuota (“”).

arguments

Un array di argomenti da passare all'applicazione. L'oggetto NativeApplication dell'applicazione invia un evento BrowserInvokeEvent con una proprietà arguments impostata su questo array. Negli argomenti vengono riconosciuti solo i caratteri alfanumerici. Per passare valori diversi, è possibile utilizzare uno schema di codifica.

Il metodo launchApplication() può funzionare solo quando viene chiamato nel gestore di eventi per un evento utente (ad esempio, un clic del mouse).

Il metodo launchApplication() genera un errore se la versione richiesta di Flash Player (versione 9 aggiornamento 3 o successiva in Windows e Mac OS o versione 10 in Linux) non è installata nel browser.

Se l'elemento allowBrowserInvocation è impostato su false nel file descrittore dell'applicazione, la chiamata al metodo launchApplication() non ha alcun effetto.

Prima di presentare l'interfaccia utente per l'avvio dell'applicazione, è possibile chiamare il metodo getApplicationVersion( ) nel file air.swf. Per informazioni dettagliate, vedete Verificare da una pagina Web se un'applicazione AIR è installata .

Quando l'applicazione viene chiamata tramite la funzionalità di chiamata browser, l'oggetto NativeApplication dell'applicazione invia un oggetto BrowserInvokeEvent. Per ulteriori informazioni, vedete Chiamata di un'applicazione AIR dal browser (sviluppatori ActionScript) o Invoking an AIR application from the browser (sviluppatori HTML).

Se utilizzate la funzionalità di chiamata browser, tenete presenti le implicazioni di sicurezza descritte in Chiamata di un'applicazione AIR dal browser (sviluppatori ActionScript) e Invoking an AIR application from the browser (sviluppatori HTML).

Quando l'applicazione è stata posta in esecuzione è in grado di comunicare con il contenuto SWF del browser mediante la classe LocalConnection. Per ulteriori informazioni, vedete Comunicazione con altre istanze di Flash Player e Adobe AIR (sviluppatori ActionScript) o Communicating with other Flash Player and AIR instances (sviluppatori HTML).

Nota: a partire da AIR 1.5.3, l'ID editore è stato dichiarato obsoleto. Gli ID editore non vengono più assegnati in automatico alle applicazioni. Per garantire la compatibilità retroattiva, le applicazioni possono comunque continuare a specificare un ID editore.