API intégrée au navigateur et stockée dans le fichier AIR.SWF

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

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

  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.

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.

  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 (voir 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

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()

Détermine si le moteur d’exécution est installé (ou s’il peut être installé) sur l’ordinateur. Pour plus d’informations, voir Vérification de la présence du moteur d’exécution .
  • runtimeVersion : chaîne précisant la version du moteur d’exécution ( « 1.0.M6 » , par exemple) qui est requise par l’application à installer.

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.

Remarque : le fichier badge.swf, qui est intégré aux kits SDK AIR et Flex, charge automatiquement le fichier air.swf. Voir 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, 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.