Installazione ed esecuzione di applicazioni AIR da una pagina Web



La funzionalità di installazione invisibile consente di incorporare un file SWF in una pagina Web che consente all'utente di installare un'applicazione AIR dal browser. Se il runtime non è installato, questa funzionalità provvede a installarlo. La funzionalità di installazione invisibile consente agli utenti di installare l'applicazione AIR senza salvare il file AIR sul loro computer. AIR SDK include un file badge.swf che consente di utilizzare facilmente la funzionalità di installazione invisibile. Per dettagli, consultate Utilizzo del file badge.swf per l'installazione di un'applicazione AIR.

Per una dimostrazione dell'uso della funzione di installazione invisibile, consultate l'articolo di esempio di Adobe AIR Quick Start Distributing an AIR Application via the Web (Distribuzione di un'applicazione AIR tramite il Web) all'indirizzo http://www.adobe.com/go/learn_air_qs_seamless_install_it.

Informazioni sulla 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. In questa sezione viene descritto come utilizzare e personalizzare il file badge.swf, nonché come chiamare le API del file air.swf dal file SWF personalizzato.

Inoltre, un file SWF in esecuzione nel browser può comunicare con un'applicazione AIR in esecuzione mediante la classe LocalConnection. Per ulteriori informazioni, consultate Comunicazione tra le applicazioni.

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 update 3. 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.

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

AIR SDK include 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.

Le istruzioni incluse in questa sezione forniscono informazioni sull'impostazione dei parametri del file badge.swf fornito da Adobe. Viene inoltre fornito il codice sorgente per il file badge.swf, che l'utente può personalizzare.

Incorporare il file badge.swf in una pagina Web

  1. Individuate i seguenti file forniti nella directory samples/badge di AIR 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. Ridenominate il file default_badge.html e regolatene il codice (oppure includetelo in un'altra pagina HTML) per adattarlo alle vostre esigenze.

È anche possibile modificare e ricompilare il file badge.swf. Per dettagli, consultate Modifica del file badge.swf.

Installazione dell'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 update 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. Procedete all'installazione (consultate 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.

Modifica del file badge.swf

AIR SDK fornisce 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.

Potete utilizzare Flash CS3 o Flash CS4 per riprogettare l'interfaccia grafica 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 public 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 dettagli, consultate Verificare se il runtime è installato.

installApplication()

Installa l'applicazione specificata sul computer dell'utente. Per dettagli, consultate 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, "1.0.M6") 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, consultate Impostazione delle proprietà dell'applicazione 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 dettagli, consultate 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 dettagli, consultate Comunicazione tra le applicazioni.

È 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 dettagli, consultate 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, è possibile chiamare le API di air.swf. Le API sono descritte nelle sezioni che seguono:

Nota: il file badge.swf fornito con AIR SDK carica automaticamente il file air.swf. Consultate Utilizzo 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 dettagli, consultate 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 update 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 dettagli, consultate 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 getApplicationVersiom() presenta i seguenti parametri:

Parametri

Descrizione

appID

L'ID applicazione dell'applicazione. Per dettagli, consultate Definizione dell'identità dell'applicazione.

pubID

L'ID editore dell'applicazione. Per dettagli, consultate Informazioni sugli identificatori di editori AIR

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 update 3 o successiva in Windows e Mac OS o versione 10 in Linux) non è installata nel browser.

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 dettagli, consultate 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, consultate Impostazione delle proprietà dell'applicazione 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 dettagli, consultate 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 update 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 dettagli, consultate 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 dettagli, consultate Comunicazione tra le applicazioni.

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, consultate Impostazione delle proprietà dell'applicazione 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 dettagli, consultate 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 dettagli, consultate Definizione dell'identità dell'applicazione.

pubID

L'ID editore dell'applicazione da avviare. Per dettagli, consultate Informazioni sugli identificatori di editori AIR

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 update 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 dettagli, consultate 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 informazioni dettagliate, consultate Chiamata del browser.

Se utilizzate la funzionalità di chiamata browser, valutate le implicazioni relative alla sicurezza, descritte in Chiamata del browser.

Quando l'applicazione è stata posta in esecuzione è in grado di comunicare con il contenuto SWF del browser mediante la classe LocalConnection. Per dettagli, consultate Comunicazione tra le applicazioni.