Installation et exécution d'applications AIR à partir d'une page Web



La fonctionnalité d'installation transparente offre la possibilité d'incorporer un fichier SWF dans une page Web, ce qui permet ensuite à l'utilisateur d'installer une application AIR à partir du navigateur. Si le moteur d'exécution n'est pas installé, la fonctionnalité d'installation transparente procède à son installation. Cette fonctionnalité permet aux utilisateurs d'installer l'application AIR sans enregistrer le fichier AIR sur le disque dur de leur ordinateur. Le fichier badge.swf, inclus dans le SDK AIR, est fourni pour vous faciliter l'utilisation de la fonctionnalité d'installation transparente. Pour plus d'informations, consultez la section Utilisation du fichier badge.swf pour installer une application AIR.

Une démonstration de l'utilisation de la fonctionnalité d'installation est disponible dans l'article de démarrage rapide Distribution d'une application AIR via le Web (http://www.adobe.com/go/learn_air_qs_seamless_install_fr).

A propos de la 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. Cette section explique comment utiliser et personnaliser le fichier badge.swf, et comment appeler les API du fichier 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, consultez la section Communication inter-applications.

Important : les fonctionnalités décrites dans cette section (et les API dans le fichier air.swf) impliquent l'installation préalable d'Adobe® Flash® Player 9 Mise à jour 3 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, vous avez la possibilité 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 du fichier air.swf pour installer une application).

Utilisation du fichier badge.swf pour installer une application AIR

Le fichier badge.swf, inclus dans le SDK AIR, est donné pour vous faciliter 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 puissiez assurer la distribution sur vos différentes pages Web.

Les instructions contenues dans cette section regroupent des informations sur la définition des paramètres du fichier badge.swf fourni par Adobe. Nous mettons également à votre disposition le code source pour le fichier badge.swf, ce qui vous permet de le personnaliser.

Intégration du fichier badge.swf dans une page Web

  1. Repérez les fichiers suivants qui sont stockés dans le répertoire samples/badge du SDK AIR et ajoutez-les à votre serveur Web.

    • badge.swf

    • default_badge.html

    • AC_RunActiveContent.js

  2. Ouvrez la page default_badge.html dans un éditeur de texte.

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

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

  5. Renommez le fichier default_badge.html et ajustez son code (ou englobez-le dans une autre page HTML) selon vos besoins.

Vous pouvez également modifier et recompiler le fichier badge.swf. Pour plus d'informations, consultez la section 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.

  1. 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é.

  2. 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 (consultez le chapitre Installation d'Adobe AIR), puis passez à l'étape suivante.

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

  4. Sélectionnez les options qui vous intéressent, puis cliquez sur le bouton Installer.

  5. Une fois que vous avez terminé l'installation, cliquez sur Terminer.

Modification du fichier badge.swf

Le kit SDK AIR fournit les fichiers source pour le fichier badge.swf. Ces fichiers sont situés dans le dossier samples/badge du kit SDK :

Fichiers source

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 CS3 ou CS4 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()

Détermine si le moteur d'exécution est installé (ou s'il peut être installé) sur l'ordinateur. Pour plus d'informations, consultez la section Vérification de la présence du moteur d'exécution.

installApplication()

Installe l'application spécifiée sur l'ordinateur de l'utilisateur. Pour plus d'informations, consultez la section 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 (par exemple « 1.0.M6 ») qui est requise par l'application à installer.

  • arguments – Arguments à transmettre à l'application si elle est lancée au moment de l'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 de l'application, consultez la section Définition des propriétés d'une application 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, consultez la section 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, consultez la section Communication inter-applications.

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, consultez la section 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. Ces API sont décrites dans les sections suivantes :

Remarque : le fichier badge.swf, fourni avec le SDK AIR, charge automatiquement le fichier air.swf. Consultez la section Utilisation du fichier badge.swf pour installer une application AIR. Les instructions détaillées dans cette section se rapportent à la création de votre propre fichier SWF qui charge le fichier air.swf.

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, consultez la section 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, consultez la section 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 getApplicationVersiom() possède les paramètres suivants :

Paramètres

Description

appID

ID d'application pour l'application. Pour plus d'informations, consultez la section Définition de l'identité de l'application.

pubID

ID d'éditeur de l'application. Pour plus d'informations, consultez la section A propos des identifiants d'éditeur AIR.

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.

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, consultez la section 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 de l'application, consultez la section Définition des propriétés d'une application 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, consultez la section 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, consultez la section 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, consultez la section Communication inter-applications.

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 de l'application, consultez la section Définition des propriétés d'une application 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, consultez la section 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 est dotée des paramètres suivants :

Paramètre

Description

appID

ID d'application pour l'application à lancer. Pour plus d'informations, consultez la section Définition de l'identité de l'application.

pubID

ID d'éditeur de l'application à lancer. Pour plus d'informations, consultez la section A propos des identifiants d'éditeur AIR.

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, consultez la section 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, consultez la section Appel du navigateur.

Si vous utilisez la fonctionnalité d'appel du navigateur, assurez-vous d'avoir envisagé les conséquences au niveau de la sécurité qui sont décrites à la section Appel du navigateur.

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, consultez la section Communication inter-applications.