|
Risorse di Flash CS4 |
Installazione ed esecuzione di applicazioni AIR da una pagina WebLa 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 invisibileOltre 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 AIRAIR 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
È 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 WebDopo aver aggiunto il collegamento di installazione invisibile in una pagina, l'utente può installare l'applicazione AIR facendo clic sul collegamento nel file SWF.
Modifica del file badge.swfAIR SDK fornisce i file di origine per il file badge.swf. Tali file sono inclusi nella cartella samples/badge di SDK.
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:
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 è installatoUn 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:
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 è installataUn 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:
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 browserUn 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:
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 installataPer 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:
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. |