Ett AIR-program anropas när användaren (eller operativsystemet):
-
Startar programmet från skrivbordsskalet.
-
Använder programmet som ett kommando i ett kommandoradsskal.
-
Öppnar en typ av fil som programmet är standardprogram för.
-
(Mac OS X) Klickar på programikonen i aktivitetsfältet (oavsett om programmet körs eller inte).
-
Väljer att starta programmet från installationsprogrammet (antingen i slutet av en ny installationsprocess eller efter att ha dubbelklickat på AIR-filen för ett redan installerat program).
-
Börjar en uppdatering av ett AIR-program när den installerade versionen har signalerat att den hanterar programuppdateringar själv (genom att ta med en
<customUpdateUI>true</customUpdateUI>
-deklaration i programbeskrivningsfilen).
-
(iOS) Erhåller ett meddelande från APN-tjänster (Apple Push Notification).
-
Aktiverar programmet via en URL-adress.
-
Besöker en webbsida som är värd för ett Flash-emblem eller ett program som anropar metoden
com.adobe.air.AIR launchApplication()
som anger ID-information för AIR-programmet. (Programbeskrivningen måste också omfatta en
<allowBrowserInvocation>true</allowBrowserInvocation>
-deklaration om webbläsaranrop ska lyckas.)
När ett AIR-program anropas skickas ett InvokeEvent-objekt av typen
invoke
via singleton-objektet NativeApplication. För att en programtid ska kunna initiera sig själv och registrera en händelseavlyssnare måste
invoke
-händelser ställas i kö i stället för att tas bort. Så snart en avlyssnare är registrerad levereras alla händelser som står i kö.
Obs!
När ett program anropas med hjälp av webbläsarens anropsfunktion skickar objektet NativeApplication bara en
invoke
-händelse om programmet inte redan körs.
Om du vill ta emot
invoke
-händelser måste du anropa NativeApplication-objektets
addEventListener()
-metod (
NativeApplication.nativeApplication)
. När en händelseavlyssnare registrerar sig till en
invoke
-händelse, kommer den också att få alla
invoke
-händelser som har inträffat före registreringen.
invoke
-händelser som står i kö skickas en i taget med korta intervall efter att anropet till
addEventListener()
returnerats. Om en ny
invoke
-händelse inträffar under den här processen kan den skickas före en eller flera av händelserna som står i kö. Tack vare det här kösystemet kan du hantera
invoke
-händelser som inträffar innan initieringskoden körs. Kom ihåg, att om du lägger till en händelseavlyssnare senare i körningen (efter programinitieringen) kommer den fortfarande att få alla
invoke
-händelser som har inträffat sedan programmet startade.
Bara en instans av ett AIR-program startar. När ett program som redan körs anropas igen, skickas en ny
invoke
-händelse till den instans som körs. Det åligger ett AIR-program att svara på en
invoke
-händelse och vidta rätt åtgärd (till exempel att öppna ett nytt dokumentfönster).
Ett
InvokeEvent
-objekt innehåller alla argument som skickas till programmet samt katalogen som programmet anropas från. Om programmet anropades med anledning av av en filtypsassociation, ingår den fullständiga sökvägen till filen i kommandoradsargumenten. Om programmet anropades med anledning av en programuppdatering anges också den fullständiga sökvägen till uppdateringsfilen.
Om flera filer öppnas i en åtgärd skickas ett enskilt InvokeEvent-objekt på Mac OS X. Varje fil inkluderas i
argument
-arrayen. På Windows och Linux skickas ett separat InvokeEvent-objekt för varje fil.
Programmet kan hantera
invoke
-händelser genom att registrera en avlyssnare med NativeApplication-objektet:
NativeApplication.nativeApplication.addEventListener(InvokeEvent.INVOKE, onInvokeEvent);
Och definiera en händelseavlyssnare:
var arguments:Array;
var currentDir:File;
public function onInvokeEvent(invocation:InvokeEvent):void {
arguments = invocation.arguments;
currentDir = invocation.currentDirectory;
}