Personnalisation du fichier badge.swf de l’installation transparente
Outre l’utilisation du fichier badge.swf fourni dans le SDK (kit de développement logiciel), vous avez également la possibilité de créer votre propre fichier SWF pour l’utiliser dans une page de navigateur. Le fichier SWF que vous avez personnalisé peut interagir avec le moteur d’exécution de différentes façons :
Ces possibilités sont toutes fournies en appelant des API dans un fichier SWF, nommé air.swf, et hébergé sur adobe.com. air.swf. Vous pouvez personnaliser le fichier badge.swf et appeler les API air.swf à partir de votre propre fichier SWF.
En outre, un fichier SWF s’exécutant dans le navigateur peut communiquer avec une application AIR en cours d’exécution grâce à l’utilisation de la classe LocalConnection. Pour plus d’informations, voir
Communications avec d’autres occurrences de Flash Player et d’AIR
(développeurs ActionScript) ou
Communications avec d’autres occurrences de Flash Player et d’AIR
(développeurs HTML).
Important :
les fonctionnalités décrites dans cette section (et les API du fichier air.swf) impliquent l’installation préalable d’Adobe® Flash® Player 9 mise à jour 3 ou ultérieur par l’utilisateur final dans le navigateur Web sous Windows ou Mac OS. Sous Linux, la fonction d’installation transparente requiert Flash Player 10 (version 10,0,12,36 ou ultérieure). Vous pouvez écrire du code pour vérifier la version installée de Flash Player et fournir une autre interface à l’utilisateur si la version requise de Flash Player n’est pas installée. Par exemple, si une ancienne version de Flash Player est installée, il est possible de fournir un lien vers la version à télécharger du fichier AIR (plutôt que d’utiliser le fichier badge.swf ou l’API air.swf pour installer une application).
Utilisation du fichier badge.swf pour installer une application AIR
Le fichier badge.swf, qui est intégré aux kits SDK AIR et Flex, facilite l’utilisation de la fonctionnalité d’installation transparente. Ce fichier peut installer le moteur d’exécution et une application AIR à partir d’un lien dans une page Web. Le fichier badge.swf et son code source vous sont fournis pour que vous en assuriez la distribution sur votre site Web.
Intégration du fichier badge.swf dans une page Web
-
Recherchez les fichiers suivants, qui résident dans le répertoire samples/badge du kit SDK AIR ou Flex, et ajoutez-les au serveur Web.
-
badge.swf
-
default_badge.html
-
AC_RunActiveContent.js
-
Ouvrez la page default_badge.html dans un éditeur de texte.
-
Dans la page default_badge.html, au niveau de la fonction JavaScript
AC_FL_RunContent()
, ajustez le paramétrage
FlashVars
pour les paramètres suivants :
Paramètre
|
Description
|
appname
|
Nom de l’application, affiché par le fichier SWF lorsque le moteur d’exécution n’est pas installé.
|
appurl
|
(Obligatoire). URL du fichier AIR à télécharger. Vous devez utiliser une URL absolue, et non relative.
|
airversion
|
(Obligatoire). Pour la version 1.0 du moteur d’exécution, définissez ce paramètre sur 1.0.
|
imageurl
|
URL de l’image (facultative) à afficher dans le badge.
|
buttoncolor
|
Couleur du bouton Télécharger (spécifiée sous forme de valeur hexadécimale, telle que
FFCC00
).
|
messagecolor
|
Couleur du message textuel affiché sous le bouton lorsque le moteur d’exécution n’est pas installé (spécifiée sous la forme d’une valeur hexadécimale, telle que
FFCC00
).
|
-
La taille minimale du fichier badge.swf est de 217 pixels de large sur 180 de haut. Ajustez les valeurs des paramètres
width
et
height
de la fonction
AC_FL_RunContent()
à votre convenance.
-
Renommez le fichier default_badge.html et ajustez son code (ou englobez-le dans une autre page HTML) selon vos besoins.
Remarque :
ne définissez pas l’attribut
wmode
de la balise HTML
embed
qui charge le fichier badge.swf ; conservez la valeur par défaut (
"window"
). Les autres paramètres
wmode
empêchent l’installation sur certains systèmes et leur utilisation donne lieu à une erreur : « Erreur n° 2044 : ErrorEvent non traité :. text=Erreur n° 2074 : La scène est trop petite pour contenir l’interface utilisateur téléchargée. »
Vous pouvez également modifier et recompiler le fichier badge.swf. Pour plus d’informations, voir
Modification du fichier badge.swf
.
Installation de l’application AIR à partir d’un lien d’installation transparente proposé dans une page Web
Une fois que vous avez ajouté le lien de l’installation transparente à une page, l’utilisateur peut installer l’application AIR en cliquant sur le lien dans le fichier SWF.
-
Naviguez jusqu’à la page HTML dans un navigateur Web sur lequel Flash Player (version 9 mise à jour 3 ou ultérieure sous Windows et Mac OS, ou version 10 sous Linux) est installé.
-
Dans cette page Web, cliquez sur le lien contenu dans le fichier badge.swf.
-
Si le moteur d’exécution est installé, passez à l’étape suivante.
-
Si le moteur d’exécution n’est pas installé, une boîte de dialogue s’affiche pour vous proposer de l’installer. Installez le moteur d’exécution (voir
Installation d’Adobe AIR
), puis passez à l’étape suivante.
-
Dans la fenêtre d’installation, conservez les paramètres par défaut sélectionnés, puis cliquez sur Continuer.
Sous Windows, l’environnement d’exécution AIR effectue les opérations suivantes :
-
Installation de l’application dans c:\Program Files\
-
Création d’un raccourci sur le bureau pour ouvrir l’application
-
Création d’un raccourci dans le menu Démarrer
-
Ajout d’une entrée dans Ajout/Suppression de programmes du Panneau de configuration
Sous Mac OS, le programme d’installation ajoute l’application au répertoire Applications (par exemple, dans le répertoire /Applications pour Mac OS).
Sur un ordinateur Linux, AIR effectue automatiquement les opérations suivantes :
-
Installation de l’application dans /opt
-
Création d’un raccourci sur le bureau pour ouvrir l’application
-
Création d’un raccourci dans le menu Démarrer
-
Ajout d’une entrée dans le gestionnaire de package du système
-
Sélectionnez les options qui vous intéressent, puis cliquez sur le bouton Installer.
-
Une fois que vous avez terminé l’installation, cliquez sur Terminer.
Modification du fichier badge.swf
Les kits SDK de Flex et d’AIR contiennent les fichiers sources associés au fichier badge.swf. Ces fichiers sont situés dans le dossier samples/badge du kit SDK :
Fichiers sources
|
Description
|
badge.fla
|
Fichier Flash source, utilisé pour compiler le fichier badge.swf. Le fichier badge.fla est compilé dans un fichier SWF 9 (pouvant être chargé dans Flash Player).
|
AIRBadge.as
|
Classe ActionScript 3.0 définissant la classe de base utilisée dans le fichier basdge.fla.
|
Vous pouvez utiliser Flash Professional pour modifier la conception de l’interface visuelle du fichier badge.fla.
La fonction constructeur
AIRBadge()
, définie dans la classe AIRBadge, charge le fichier air.swf hébergé à l’adresse suivante http://airdownload.adobe.com/air/browserapi/air.swf. Le fichier air.swf contient le code pour l’utilisation de la fonctionnalité d’installation transparente.
La méthode
onInit()
(dans la classe AIRBadge) est appelée lorsque le chargement du fichier air.swf s’est correctement déroulé :
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;
}
}
Le code définit la variable
_air
globale sur la classe principale du fichier air.swf chargé. Cette classe comprend les méthodes publiques suivantes auxquelles le fichier badge.swf accède pour appeler la fonctionnalité d’installation transparente :
Méthode
|
Description
|
getStatus()
|
|
installApplication()
|
Installe l’application spécifiée sur l’ordinateur de l’utilisateur. Pour plus d’informations, voir
Installation d’une application AIR à partir du navigateur
.
-
url
: chaîne définissant l’URL. Vous devez utiliser un chemin d’URL absolu, et non relatif.
-
runtimeVersion
: chaîne précisant la version du moteur d’exécution (
« 2.5. »
, par exemple) qui est requise par l’application à installer.
-
arguments
: arguments à transmettre à l’application si elle est lancée après son installation. L’application est lancée à l’installation si l’élément
allowBrowserInvocation
est défini sur
true
dans le fichier descripteur de l’application. (Pour plus d’informations sur le fichier descripteur d’application, voir
Fichiers descripteurs d’applications AIR
.) Si l’application est lancée lors d’une installation transparente depuis le navigateur (l’utilisateur ayant choisi le lancement à l’installation), l’objet NativeApplication de l’application ne distribue d’objet BrowserInvokeEvent que si des arguments sont transmis. Tenez compte des conséquences au niveau de la sécurité qu’une transmission de données à l’application peut entraîner. Pour plus d’informations, voir
Lancement d’une application AIR installée à partir du navigateur
.
|
Les paramètres pour
url
et
runtimeVersion
sont transmis dans le fichier SWF via les paramètres FlashVars dans la page HTML servant de conteneur.
Si l’application démarre automatiquement à l’installation, vous pouvez utiliser la communication LocalConnection pour que l’application installée contacte le fichier badge.swf au moment de l’appel. Pour plus d’informations, voir
Communications avec d’autres occurrences de Flash Player et d’AIR
(développeurs ActionScript) ou
Communications avec d’autres occurrences de Flash Player et d’AIR
(développeurs HTML).
Vous pouvez également appeler la méthode
getApplicationVersion()
du fichier air.swf pour vérifier qu’une application est déjà installée. Vous avez le choix d’appeler cette méthode avant que la procédure d’installation de l’application débute, ou après le démarrage de l’installation. Pour plus d’informations, voir
Vérification à partir d’une page Web de la présence d’une application AIR installée
.
Chargement du fichier air.swf
Vous pouvez créer votre propre fichier SWF, il sert à utiliser les API dans le fichier air.swf pour interagir avec le moteur d’exécution et les applications AIR depuis une page Web affichée dans un navigateur. Le fichier air.swf est hébergé à l’adresse suivante http://airdownload.adobe.com/air/browserapi/air.swf. Pour référencer les API du fichier air.swf à partir de votre fichier SWF, chargez le fichier air.swf dans le même domaine d’application que celui de votre fichier SWF. Le code suivant illustre un exemple de chargement du fichier air.swf dans le domaine d’application du fichier SWF chargeant.
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;
}
Une fois le fichier air.swf chargé (lorsque l’objet
contentLoaderInfo
de l’objet chargeur Loader distribue l’événement
init
), vous pouvez appeler n’importe quelle API du fichier air.swf, comme indiqué ci-après.
Vérification de la présence du moteur d’exécution
Un fichier SWF peut vérifier si le moteur d’exécution est installé en appelant la méthode
getStatus(
) dans le fichier air.swf chargé à partir de http://airdownload.adobe.com/air/browserapi/air.swf. Pour plus d’informations, voir
Chargement du fichier air.swf
.
Une fois le fichier air.swf chargé, le fichier SWF peut appeler la méthode
getStatus(
) du fichier air.swf, comme suit :
var status:String = airSWF.getStatus();
La méthode
getStatus()
renvoie une des valeurs de chaîne suivantes en fonction de l’état du moteur d’exécution sur l’ordinateur :
Valeur de chaîne
|
Description
|
"available"
|
Il est possible d’installer le moteur d’exécution sur cet ordinateur, mais il n’y est pas installé actuellement.
|
"unavailable"
|
Il est impossible d’installer le moteur d’exécution sur cet ordinateur.
|
"installed"
|
Le moteur d’exécution est installé sur cet ordinateur.
|
La méthode
getStatus()
renvoie une erreur si la version requise de Flash Player (version 9 mise à jour 3 ou ultérieure sous Windows et Mac OS, ou version 10 sous Linux) n’est pas installée dans le navigateur.
Vérification à partir d’une page Web de la présence d’une application AIR installée
Un fichier SWF peut vérifier si une application AIR (avec un ID d’application et un ID d’éditeur correspondants) est installée en appelant la méthode
getApplicationVersion(
) dans le fichier air.swf chargé à partir de http://airdownload.adobe.com/air/browserapi/air.swf. Pour plus d’informations, voir
Chargement du fichier air.swf
.
Une fois le fichier air.swf chargé, le fichier SWF peut appeler la méthode
getApplicationVersion(
) du fichier air.swf comme suit :
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.
}
}
La méthode
getApplicationVersion()
possède les paramètres suivants :
Paramètres
|
Description
|
appID
|
ID d’application pour l’application. Pour plus d’informations, voir
id
.
|
pubID
|
ID d’éditeur de l’application. Pour plus d’informations, voir
publisherID
. Si l’application concernée ne possède pas d’identifiant d’éditeur, définissez le paramètre
pubID
sur une chaîne vide (“”).
|
callback
|
Fonction de rappel pour servir comme fonction de gestionnaire. La méthode getApplicationVersion() fonctionne de façon asynchrone et c’est lorsque la présence (ou l’absence) de la version est détectée que cette méthode de rappel est invoquée. La définition de la méthode de rappel doit inclure un paramètre, une chaîne, qui est défini sur la chaîne de version de l’application installée. Si l’application n’est pas installée, une valeur « null » est transmise à la fonction, comme illustré dans l’exemple de code précédent.
|
La méthode
getApplicationVersion()
renvoie une erreur si la version requise de Flash Player (version 9 mise à jour 3 ou ultérieure sous Windows et Mac OS, ou version 10 sous Linux) n’est pas installée dans le navigateur.
Remarque :
depuis la version 1.5.3 d’AIR, l’utilisation de l’identifiant d’éditeur est déconseillée. Les identifiants d’éditeur ne sont plus automatiquement affectés aux applications. Les applications peuvent néanmoins continuer à les stipuler à des fins de compatibilité ascendante.
Installation d’une application AIR à partir du navigateur
Un fichier SWF peut installer une application AIR en appelant la méthode
installApplication()
dans le fichier air.swf chargé à partir de
http://airdownload.adobe.com/air/browserapi/air.swf
. Pour plus d’informations, voir
Chargement du fichier air.swf
.
Une fois le fichier air.swf chargé, le fichier SWF peut appeler la méthode
installApplication()
du fichier air.swf comme suit :
var url:String = "http://www.example.com/myApplication.air";
var runtimeVersion:String = "1.0";
var arguments:Array = ["launchFromBrowser"]; // Optional
airSWF.installApplication(url, runtimeVersion, arguments);
La méthode
installApplication()
installe l’application spécifiée sur l’ordinateur de l’utilisateur. Cette méthode est dotée des paramètres suivants :
Paramètre
|
Description
|
url
|
Chaîne définissant l’URL du fichier AIR à installer. Vous devez utiliser un chemin d’URL absolu, et non relatif.
|
runtimeVersion
|
Chaîne précisant la version du moteur d’exécution (par exemple « 1.0 ») qui est requise par l’application à installer.
|
arguments
|
Tableau d’arguments à transmettre à l’application si elle est lancée au moment de l’installation. Seuls les caractères alphanumériques sont reconnus dans les arguments. Pour transmettre d’autres valeurs, pensez à utiliser un schéma de codage.
L’application est lancée à l’installation si l’élément
allowBrowserInvocation
est défini sur
true
dans le fichier descripteur de l’application. (Pour plus d’informations sur le fichier descripteur d’application, voir
Fichiers descripteurs d’applications AIR
.) Si l’application est lancée lors d’une installation transparente depuis le navigateur (l’utilisateur ayant choisi le lancement à l’installation), l’objet NativeApplication de l’application ne distribue d’objet BrowserInvokeEvent que si des arguments ont été transmis. Pour plus d’informations, voir
Lancement d’une application AIR installée à partir du navigateur
.
|
La méthode
installApplication()
ne peut fonctionner que lorsqu’elle est appelée dans le gestionnaire d’événement pour un événement utilisateur, tel qu’un clic de souris.
La méthode
installApplication()
renvoie une erreur si la version requise de Flash Player (version 9 mise à jour 3 ou ultérieure sous Windows et Mac OS, ou version 10 sous Linux) n’est pas installée dans le navigateur.
Sous Mac OS, l’utilisateur doit détenir les droits système appropriés lui permettant d’installer une version de mise à jour d’une application dans le répertoire de cette application (et de privilèges d’administration si l’application met à jour le moteur d’exécution). S’il utilise Windows, l’utilisateur doit détenir des privilèges d’administration.
Vous pouvez également appeler la méthode
getApplicationVersion()
du fichier air.swf pour vérifier si une application est déjà installée. Vous avez le choix d’appeler cette méthode avant que la procédure d’installation de l’application débute, ou après le démarrage de l’installation. Pour plus d’informations, voir
Vérification à partir d’une page Web de la présence d’une application AIR installée
. Dès qu’elle est exécutée, l’application peut communiquer avec le contenu SWF dans le navigateur en utilisant la classe LocalConnection. Pour plus d’informations, voir
Communications avec d’autres occurrences de Flash Player et d’AIR
(développeurs ActionScript) ou
Communications avec d’autres occurrences de Flash Player et d’AIR
(développeurs HTML).
Lancement d’une application AIR installée à partir du navigateur
Pour utiliser la fonctionnalité d’appel du navigateur (lui permettant d’être lancé à partir du navigateur), le fichier descripteur d’application de l’application cible doit comporter le paramètre suivant :
<allowBrowserInvocation>true</allowBrowserInvocation>
Pour plus d’informations sur le fichier descripteur d’application, voir
Fichiers descripteurs d’applications AIR
.
Un fichier SWF présent dans le navigateur peut lancer une application AIR en appelant la méthode
launchApplication()
dans le fichier air.swf chargé à partir de http://airdownload.adobe.com/air/browserapi/air.swf. Pour plus d’informations, voir
Chargement du fichier air.swf
.
Une fois le fichier air.swf chargé, le fichier SWF peut appeler la méthode
launchApplication()
du fichier air.swf comme suit :
var appID:String = "com.example.air.myTestApplication";
var pubID:String = "02D88EEED35F84C264A183921344EEA353A629FD.1";
var arguments:Array = ["launchFromBrowser"]; // Optional
airSWF.launchApplication(appID, pubID, arguments);
La méthode
launchApplication()
est définie au niveau supérieur du fichier air.swf (qui est chargé dans le domaine d’application du fichier SWF de l’interface utilisateur). Le fait d’appeler cette méthode déclenche le lancement de l’application spécifiée par AIR (si cette application est installée et si l’appel du navigateur est autorisé, par le biais du paramètre
allowBrowserInvocation
dans le fichier descripteur de l’application). Cette méthode prend en charge les paramètres suivants :
Paramètre
|
Description
|
appID
|
ID d’application pour l’application à lancer. Pour plus d’informations, voir
id
.
|
pubID
|
ID d’éditeur de l’application à lancer. Pour plus d’informations, voir
publisherID
. Si l’application concernée ne possède pas d’identifiant d’éditeur, définissez le paramètre
pubID
sur une chaîne vide (“”).
|
arguments
|
Tableau d’arguments à transmettre à l’application. L’objet NativeApplication de l’application distribue un événement BrowserInvokeEvent dont une propriété arguments est définie sur ce tableau. Seuls les caractères alphanumériques sont reconnus dans les arguments. Pour transmettre d’autres valeurs, pensez à utiliser un schéma de codage.
|
La méthode
launchApplication()
ne peut fonctionner que lorsqu’elle est appelée dans le gestionnaire d’événement pour un événement utilisateur, tel qu’un clic de souris.
La méthode
launchApplication()
renvoie une erreur si la version requise de Flash Player (version 9 mise à jour 3 ou ultérieure sous Windows et Mac OS, ou version 10 sous Linux) n’est pas installée dans le navigateur.
Si l’élément
allowBrowserInvocation
est défini sur
false
dans le fichier descripteur de l’application, l’appel de la méthode
launchApplication()
n’a aucune incidence.
Avant de présenter l’interface utilisateur pour lancer l’application, il est peut-être préférable d’appeler la méthode
getApplicationVersion()
dans le fichier air.swf. Pour plus d’informations, voir
Vérification à partir d’une page Web de la présence d’une application AIR installée
.
Lorsque l’application est invoquée par le biais de la fonctionnalité d’appel du navigateur, l’objet NativeApplication de l’application distribue un objet BrowserInvokeEvent. Pour plus d’informations, voir
Appel d’une application AIR à partir du navigateur
(développeurs ActionScript) ou
Appel d’une application AIR à partir du navigateur
(développeurs HTML).
Si vous utilisez la fonction d’appel du navigateur, tenez compte des implications au niveau de la sécurité. Ces implications sont décrites dans
Appel d’une application AIR à partir du navigateur
(développeurs ActionScript) et
Appel d’une application AIR à partir du navigateur
(développeurs HTML).
Dès qu’elle est exécutée, l’application peut communiquer avec le contenu SWF dans le navigateur en utilisant la classe LocalConnection. Pour plus d’informations, voir
Communications avec d’autres occurrences de Flash Player et d’AIR
(développeurs ActionScript) ou
Communications avec d’autres occurrences de Flash Player et d’AIR
(développeurs HTML).
Remarque :
depuis la version 1.5.3 d’AIR, l’utilisation de l’identifiant d’éditeur est déconseillée. Les identifiants d’éditeur ne sont plus automatiquement affectés aux applications. Les applications peuvent néanmoins continuer à les stipuler à des fins de compatibilité ascendante.
|
|
|