Überblick über die HTML-Umgebung

Adobe AIR 1.0 und höher

Adobe AIR bietet eine vollständige, browserähnliche JavaScript-Umgebung mit HTML-Renderer, Dokument-Objekt-Modell und JavaScript-Interpreter. Die JavaScript-Umgebung wird durch die HTMLLoader-Klasse in AIR dargestellt. In HTML-Fenstern enthält ein HTMLLoader-Objekt den gesamten HTML-Inhalt. Das HTMLLoader-Objekt wiederum befindet sich in einem NativeWindow-Objekt. In SWF-Inhalten kann die HTMLLoader-Klasse, die die Sprite-Klasse erweitert, wie jedes andere Anzeigeobjekt zur Anzeigeliste einer Bühne hinzugefügt werden. Die Adobe® ActionScript® 3.0-Eigenschaften der Klasse sind unter Skripterstellung von AIR-HTML-Containern beschrieben und außerdem auch im ActionScript 3.0-Referenzhandbuch für die Adobe Flash-Plattform . Im Flex-Framework legt sich eine mx:HTML-Komponente um die HTMLLoader-Klasse von AIR. Die mx:HTML-Komponente erweitert die UIComponent-Klasse, sodass diese direkt mit anderen Flex-Containern verwendet werden kann. Abgesehen davon ist die JavaScript-Umgebung innerhalb der mx:HTML-Komponente identisch.

JavaScript-Umgebung und der AIR-Host

Das folgende Diagramm verdeutlicht das Verhältnis zwischen der JavaScript-Umgebung und der AIR-Laufzeitumgebung. Es wird nur ein einzelnes natives Fenster dargestellt, eine AIR-Anwendung kann jedoch mehrere Fenster umfassen. (Einzelne Fenster können zudem mehrere HTMLLoader-Objekte enthalten.)

Grafik in Originalgröße anzeigen
Die JavaScript-Umgebung verfügt über ihre eigenen Document- und Window-Objekte. Der JavaScript-Code kann über die Laufzeit-, NativeWindow- und htmlLoader-Eigenschaften mit der AIR-Laufzeitumgebung interagieren. ActionScript-Code kann mit der JavaScript-Umgebung über die window -Eigenschaft eines HTMLLoader-Objekts, das auf ein Window-Objekt von JavaScript verweist, interagieren. Zudem können sowohl ActionScript- als auch JavaScript-Objekte als Listener für AIR- oder JavaScript-Ereignisse verwendet werden.

Die Eigenschaft runtime ermöglicht den Zugriff auf AIR-API-Klassen und gibt Ihnen damit die Möglichkeit, neue AIR-Objekte zu erstellen und auf Klassenmitglieder (auch als statische Mitglieder bezeichnet) zuzugreifen. Um auf eine AIR-API zuzugreifen, fügen Sie den Namen der Klasse zusammen mit dem Packet zur Eigenschaft runtime hinzu. Zur Erstellung eines File-Objekts geben Sie zum Beispiel die folgende Anweisung ein:

var file = new window.runtime.filesystem.File();
Hinweis: Das AIR-SDK stellt eine JavaScript-Datei ( AIRAliases.js ) zur Verfügung, in der geeignete Aliasnamen für die am häufigsten verwendeten AIR-Klassen definiert werden. Wenn Sie diese Datei importieren, können Sie anstatt des umständlichen „window.runtime.package.Class“ das einfachere „air.Class“ verwenden. So können Sie beispielsweise mit new air.File() das File-Objekt erstellen.

Das NativeWindow-Objekt enthält Eigenschaften zur Steuerung des Desktop-Fensters. Auf dieses NativeWindow-Objekt können Sie mit der Eigenschaft window.nativeWindow aus einer HTML-Seite heraus zugreifen.

Das HTMLLoader-Objekt stellt Eigenschaften, Methoden und Ereignisse bereit, mit denen das Laden und die Wiedergabe von Inhalten gesteuert wird. Auf das übergeordnete HTMLLoader-Objekt können Sie mit der Eigenschaft window.htmlLoader aus einer HTML-Seite heraus zugreifen.

Wichtig: Lediglich Seiten, die als Teil einer Anwendung installiert wurden, verfügen über die Eigenschaften htmlLoader , nativeWindow oder runtime und dies nur, wenn sie als Dokument der obersten Ebene geladen wurden. Die Eigenschaften werden nicht hinzugefügt, wenn das Dokument in einen Frame oder iFrame geladen wird. (Ein untergeordnetes Dokument kann auf diese Eigenschaften des übergeordneten Dokuments zugreifen, vorausgesetzt, es befindet sich in derselben Sicherheits-Sandbox. Ein Dokument, das in einen Frame geladen wurde, kann zum Beispiel mit parent.runtime auf die Eigenschaft runtime des übergeordneten Dokuments zugreifen .)

Sicherheit

AIR führt den gesamten Code innerhalb einer Sicherheits-Sandbox, basierend auf der Ursprungsdomäne, aus. Anwendungsinhalte, also Inhalte, die aus dem Installationsverzeichnis der Anwendung geladen werden, werden in der Anwendungs- Sandbox platziert. Auf die Laufzeitumgebung und die AIR-APIs kann nur von HTML und JavaScript zugegriffen werden, das innerhalb dieser Sandbox ausgeführt wird. Gleichzeitig wird die dynamische Auswertung und Ausführung von JavaScript in der Anwendungs-Sandbox größtenteils blockiert, nachdem alle Prozeduren für das Ereignis load für die Seite zurückgegeben wurden.

Sie können eine Anwendungsseite einer anwendungsfremden Sandbox zuordnen, indem Sie die Seite in einen Frame oder iFrame laden und die AIR-spezifischen Attribute sandboxRoot und documentRoot des Frames einstellen. Durch die Einstellung des Werts sandboxRoot auf eine vorhandene Remote-Domäne können Skripts in der Sandbox auf Inhalte in dieser Domäne Bezug nehmen. Diese Art der Zuordnung von Seiten kann besonders beim Laden und Skripten von Remote-Inhalten wie in mash-up -Anwendungen nützlich sein.

Eine weitere Möglichkeit, gegenseitige Verweise in Skripten der Anwendung und anwendungsfremden Inhalten zuzulassen und das einzige Verfahren, mit dem anwendungsfremden Inhalten Zugriff auf AIR-APIs gewährt werden kann, ist die Erstellung einer Sandbox-Brücke . Eine Brücke von übergeordneten zu untergeordneten Inhalten ermöglicht Inhalten in untergeordneten Frames, iFrames oder Fenstern den Zugriff auf in der Anwendungs-Sandbox festgelegte Methoden und Eigenschaften. Eine Brücke von untergeordneten zu übergeordneten Inhalten ermöglicht wiederum den Zugriff von Anwendungsinhalten auf bestimmte Methoden und Eigenschaften, die in der Sandbox der untergeordneten Inhalte festgelegt wurden. Sandbox-Brücken werden durch die Eigenschaften parentSandboxBridge und childSandboxBridge im window-Objekt erstellt. Weitere Informationen finden Sie unter HTML-Sicherheit in Adobe AIR und HTML-Frame- und iFrame-Elemente .

Zusatzmodule und eingebettete Objekte

AIR unterstützt das Adobe® Acrobat®-Zusatzmodul. Für die Anzeige von PDF-Inhalten muss auf dem Gerät Acrobat oder Adobe® Reader® 8.1 (oder höher) installiert sein. Das HTMLLoader-Objekt verfügt über eine Eigenschaft, mit der überprüft werden kann, ob auf dem System des Benutzers PDF-Dateien angezeigt werden können. SWF-Dateiinhalte können auch in der HTML-Umgebung angezeigt werden, dies ist jedoch eine Funktion von AIR, für die keine externen Zusatzmodule benötigt werden.

AIR unterstützt keine weiteren WebKit-Zusatzmodule.