Présentation de l’environnement HTML

Adobe AIR 1.0 et les versions ultérieures

Adobe AIR propose un environnement JavaScript de type navigateur complet, doté d’une fonctionnalité de rendu HTML, d’un modèle d’objet de document et d’un interpréteur JavaScript. L’environnement JavaScript est représenté par la classe HTMLLoader d’AIR. Dans les fenêtres HTML, un objet HTMLLoader inclut tout le contenu HTML et est, à son tour, compris dans un objet NativeWindow. Dans un contenu SWF, il est possible d’ajouter la classe HTMLLoader, qui étend la classe Sprite, à la liste d’affichage d’une scène à l’instar de tout autre objet d’affichage. Les propriétés Adobe® ActionScript® 3.0 de la classe sont décrites à la section Programmation du conteneur HTML d’AIR à l’aide de scripts et dans le manuel Guide de référence ActionScript 3.0 pour la plate-forme Adobe Flash . Dans la structure Flex, la classe AIR HTMLLoader est enveloppée dans un composant mx:HTML. Comme le composant mx:HTML étend la classe UIComponent, il peut être directement utilisé avec d’autres conteneurs Flex. L’environnement JavaScript au sein du composant mx:HTML ne présente aucune autre différence.

Présentation de l’environnement JavaScript et de sa relation avec l’hôte AIR

Le diagramme suivant illustre la relation existant entre l’environnement JavaScript et l’environnement du moteur d’exécution AIR. Bien qu’une seule fenêtre native soit affichée, une application AIR peut contenir plusieurs fenêtres. (De même, une seule fenêtre peut comprendre de multiples objets HTMLLoader.)

Afficher le graphique en taille réelle
L’environnement JavaScript possède ses propres objets Document et Window. Le code JavaScript a des interactions avec l’environnement du moteur d’exécution AIR via les propriétés runtime, nativeWindow et htmlLoader. Quant au code ActionScript, il interagit avec l’environnement JavaScript par le biais de la propriété window d’un objet HTMLLoader, lequel fait référence à l’objet Window JavaScript. En outre, les objets ActionScript et JavaScript permettent d’écouter des événements envoyés à la fois par des objets AIR et JavaScript.

La propriété runtime offre un accès aux classes API AIR, ce qui vous permet de créer de nouveaux objets AIR de même que d’accéder aux membres de la classe (également appelée statique). Pour accéder à une API AIR, ajoutez le nom de la classe (package compris) à la propriété runtime . Par exemple, pour créer un objet File, utilisez l’instruction suivante :

var file = new window.runtime.filesystem.File();
Remarque : le kit de développement d’AIR contient un fichier JavaScript, intitulé AIRAliases.js , qui définit des alias plus pratiques pour les classes AIR les plus courantes. Lors de l’importation de ce fichier, vous pouvez utiliser la forme abrégée air.Class au lieu de window.runtime.package.Class. Vous pourriez, par exemple, créer l’objet File à l’aide de new air.File() .

L’objet NativeWindow offre des propriétés permettant de contrôler la fenêtre du poste de travail. A partir d’une page HTML, vous pouvez accéder à l’objet NativeWindow conteneur à l’aide de la propriété window.nativeWindow .

L’objet HTMLLoader propose des propriétés, des méthodes et des événements destinés à contrôler les modes de chargement et de rendu du contenu. A partir d’une page HTML, vous pouvez accéder à l’objet HTMLLoader parent à l’aide de la propriété window.htmlLoader .

Important : seules les pages installées dans le cadre d’une application disposent des propriétés htmlLoader , nativeWindow ou runtime et ce, uniquement lorsqu’elles sont chargées en tant que document de niveau supérieur. Ces propriétés ne sont pas ajoutées dans le cas où le document est chargé dans une image ou une iframe. (Un document enfant peut accéder à ces propriétés dans le document parent du moment qu’il se trouve dans le même sandbox de sécurité. Par exemple, un document chargé dans un cadre pourrait accéder à la propriété runtime de son parent au moyen de parent.runtime .)

A propos de la sécurité

AIR exécute la totalité du code au sein d’un sandbox de sécurité dépendant du domaine d’origine. Le contenu de l’application, qui se limite au contenu chargé à partir du répertoire d’installation de l’application, est placé dans le sandbox de l’ application . L’accès à l’environnement d’exécution et aux API AIR est uniquement disponible pour les scripts HTML et JavaScript exécutés dans ce sandbox. Parallèlement à cela, les opérations d’évaluation et d’exécution dynamiques de code JavaScript sont en grande partie bloquées dans le sandbox de l’application une fois que tous les gestionnaires de l’événement load de la page ont été renvoyés.

Vous avez la possibilité de mapper une page d’application dans un sandbox autre que d’application. Pour ce faire, chargez la page dans une image ou une iframe et définissez les attributs sandboxRoot et documentRoot du cadre propres à AIR. En configurant la valeur de sandboxRoot sur un domaine distant réel, vous permettez au contenu placé dans le sandbox d’intercoder le contenu de ce domaine. Cette méthode de mappage de pages peut s’avérer pratique lors du chargement et du codage du contenu distant, dans le cadre d’une application composite par exemple.

Une autre solution permettant d’intercoder des contenus d’application et autre (et la seule manière de donner accès à des API AIR à un contenu autre que d’application) consiste à créer un pont de sandbox . Un pont parent-enfant permet au contenu d’une image enfant, d’une iframe ou d’une fenêtre d’accéder à des méthodes et propriétés désignées définies dans le sandbox de l’application. A l’inverse, un pont enfant-parent permet au contenu de l’application d’accéder à des méthodes et propriétés désignées définies dans le sandbox de l’enfant. Pour définir un pont de sandbox, vous devez définir les propriétés parentSandboxBridge et childSandboxBridge de l’objet window. Pour plus d’informations, voir Sécurité HTML dans Adobe AIR et Eléments image et iframe HTML .

A propos des modules d’extension et des objets incorporés

AIR prend en charge le module d’extension Adobe® Acrobat®. Pour afficher le contenu PDF, les utilisateurs doivent disposer d’Acrobat ou d’Adobe® Reader® 8.1 (ou version ultérieure). L’objet HTMLLoader comprend une propriété permettant de vérifier si le système d’un utilisateur peut afficher ou non des documents PDF. Il est également possible d’afficher le contenu des fichiers SWF au sein de l’environnement HTML. Cette fonction étant intégrée dans AIR, elle ne fait appel à aucun module d’extension.

AIR ne prend en charge aucun autre module d’extension Webkit.