Overzicht van de HTML-omgeving

Adobe AIR 1.0 of hoger

Adobe AIR biedt een volledige browserachtige JavaScript-omgeving met een HTML-renderer, documentobjectmodel en JavaScript-interpreter. De JavaScript-omgeving wordt vertegenwoordigd door de AIR-klasse HTMLLoader. In HTML-vensters bevat een HTMLLoader-object alle HTML-inhoud. Dit object bevindt zich op zijn beurt weer in een NativeWindow-object. In SWF-inhoud kan de klasse HTMLLoader, die een uitbreiding vormt van de klasse Sprite, worden toegevoegd aan de weergavelijst van een werkgebied, net als ieder ander weergaveobject. De Adobe® ActionScript® 3.0-eigenschappen van de klasse worden beschreven in Scripting van de AIR HTML-container en in de Naslaggids voor ActionScript 3.0 voor het Adobe Flash-platform . In het Flex-framework wordt de AIR-klasse HTMLLoader opgenomen in een mx:HTML-component. De mx:HTML-component vormt een uitbreiding van de klasse UIComponent, zodat deze rechtstreeks kan worden gebruikt met andere Flex-containers. Verder is de JavaScript-omgeving binnen de mx:HTML-component identiek.

Informatie over de JavaScript-omgeving en zijn relatie met de AIR-host.

In het volgende diagram wordt de relatie geïllustreerd tussen de JavaScript-omgeving en de AIR-runtimeomgeving. Er wordt maar één native venster weergegeven. Een AIR-toepassing kan echter meerdere vensters bevatten. (En een venster kan meerdere HTMLLoader-objecten bevatten.)

Afbeelding op volledige grootte weergeven
De JavaScript-omgeving heeft zijn eigen Document- en Window-objecten. JavaScript-code kan interageren met de AIR-runtimeomgeving via de eigenschappen runtime, nativeWindow en htmlLoader. ActionScript-code kan interageren met de JavaScript-omgeving via de eigenschap window van een HTMLLoader-object, dat een referentie vormt naar het JavaScript Window-object. Verder kunnen zowel ActionScript- als JavaScript-objecten luisteren naar gebeurtenissen die zijn verzonden door zowel AIR- als JavaScript-objecten.

De eigenschap runtime geeft toegang tot AIR API-klassen zodat u nieuwe AIR-objecten en ook toegangsklasseleden (statische leden) kunt maken. Als u een AIR API wilt openen, voegt u de naam van de klasse (met pakket) toe aan de eigenschap runtime . Als u bijvoorbeeld een File-object wilt maken, gebruikt u de volgende opdracht:

var file = new window.runtime.filesystem.File();
Opmerking: De AIR SDK bevat een JavaScript-bestand, AIRAliases.js , waarin aanvullende handige aliassen voor de meestgebruikte AIR-klassen worden gedefinieerd. Als u dit bestand importeert, kunt u de korte vorm air.Class gebruiken in plaats van window.runtime.package.Class. U kunt bijvoorbeeld het File-object maken met new air.File() .

Het NativeWindow-object bevat eigenschappen voor het beheer van het bureaubladvenster. Vanuit een HTML-pagina kunt u toegang krijgen tot het omvattende NativeWindow-object met behulp van de eigenschap window.nativeWindow .

Het HTMLLoader-object bevat eigenschappen, methoden en gebeurtenissen voor het beheer van de manier waarop inhoud wordt geladen en weergegeven. Vanuit een HTML-pagina kunt u toegang krijgen tot het bovenliggende HTMLLoader-object met behulp van de eigenschap window.htmlLoader .

Belangrijk: Alleen pagina's die zijn geïnstalleerd als onderdeel van een toepassing, hebben de eigenschap htmlLoader , nativeWindow of runtime . Ze hebben deze eigenschappen alleen wanneer ze zijn geladen als document van het hoogste niveau. Deze eigenschappen worden niet toegevoegd wanneer een document wordt geladen in een frame of iframe. (Een onderliggend document kan toegang krijgen tot deze eigenschappen van het bovenliggende document, zolang het onderliggende document zich bevindt in dezelfde beveiligingssandbox. Een document dat bijvoorbeeld is geladen in een frame, kan toegang krijgen tot de eigenschap runtime van het bovenliggende document met behulp van parent.runtime .)

Informatie over beveiliging

AIR voert alle code binnen een beveiligingssandbox uit op basis van het brondomein. Toepassingsinhoud, die beperkt is tot inhoud die is geladen uit de installatiemap van de toepassing, wordt geplaatst in de toepassings sandbox. Toegang tot de runtimeomgeving en de AIR API's is alleen beschikbaar voor HTML en JavaScript die worden uitgevoerd binnen deze sandbox. Tegelijkertijd wordt de meeste dynamische evaluatie en uitvoering van JavaScript geblokkeerd in de toepassingssandbox nadat alle handlers voor de paginagebeurtenis load zijn geretourneerd.

U kunt een toepassingspagina toewijzen in een niet-toepassingssandbox door de pagina te laden in een frame of iframe en de AIR-specifieke kenmerken sandboxRoot en documentRoot van het frame in te stellen. Door de waarde sandboxRoot in te stellen op een werkelijk extern domein, kunt u de sandboxinhoud inschakelen zodat u inhoud in dat domein kunt cross-scripten. Het toewijzen van pagina's op deze manier kan nuttig zijn bij het laden en scripten van externe inhoud, bijvoorbeeld in een mash-up -toepassing.

Een andere manier om toepassings- en niet-toepassingsinhoud in staat te stellen om elkaar te cross-scripten, en de enige manier om niet-toepassingsinhoud toegang te geven tot AIR API's, is het maken van een sandboxbridge . Een bovenliggende-onderliggende bridge maakt het mogelijk voor inhoud in een onderliggend frame, iframe of venster om toegang te krijgen tot speciaal aangewezen methoden en eigenschappen die zijn gedefinieerd in de toepassingssandbox. Een onderliggende-bovenliggende bridge daarentegen maakt het toepassingsinhoud mogelijk om toegang te krijgen tot bepaalde methoden en eigenschappen die zijn gedefinieerd in de sandbox van de onderliggende. Sandboxbridges worden gecreëerd door de eigenschappen parentSandboxBridge en childSandboxBridge van het Window-object in te stellen. Zie HTML-beveiliging in Adobe AIR en Frame- en iframe-elementen in HTML voor meer informatie.

Informatie over invoegtoepassingen en ingesloten objecten

AIR ondersteunt de invoegtoepassing Adobe ® Acrobat®. Gebruikers moeten beschikken over Acrobat of Adobe® Reader® 8.1 (of hoger) om PDF-inhoud te kunnen weergeven. Het HTMLLoader-object biedt een eigenschap waarmee kan worden gecontroleerd of het systeem van een gebruiker PDF kan weergeven. SWF-bestandsinhoud kan ook worden weergegeven binnen de HTML-omgeving. Deze functie is echter ingebouwd in AIR en maakt geen gebruik van een externe invoegtoepassing.

In AIR worden andere WebKit-invoegtoepassingen niet ondersteund.