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
-
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
-
Aprite la pagina default_badge.html in un editor di testo.
-
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
).
|
-
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.
-
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.
-
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).
-
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.
-
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.
-
Selezionate le opzioni desiderate, quindi fate clic sul pulsante Installa.
-
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()
|
|
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.
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.
|
|
|