Werken met AIR-runtime- en besturingssysteeminformatie

Adobe AIR 1.0 of hoger

Dit hoofdstuk behandelt de manieren waarop een AIR-toepassing systeembestandskoppelingen kan beheren, gebruikersactiviteit kan detecteren en informatie kan ophalen over de Adobe® AIR®-runtime.

Bestandskoppelingen beheren

Koppelingen tussen uw toepassing en een bestandstype moeten worden geregistreerd in de toepassingsdescriptor. Tijdens het installatieproces koppelt het installatieprogramma de AIR-toepassing als de standaard openingstoepassing aan elk geregistreerd bestandstype, tenzij er standaard al een andere toepassing is toegewezen. Het installatieproces van de AIR-toepassing wijzigt een bestaande bestandstypekoppeling niet. Om de koppeling van een andere toepassing over te nemen, dient u de methode NativeApplication.setAsDefaultApplication() op te roepen tijdens de runtime.

U controleert het best of de verwachte bestandskoppelingen aanwezig zijn wanneer uw toepassing opstart. De reden hiervoor is dat het installatieprogramma van de AIR-toepassing de bestaande bestandskoppelingen niet wijzigt. Bovendien kunnen de bestandskoppelingen op het systeem van de gebruiker altijd veranderen. Als een andere toepassing de huidige bestandskoppeling heeft, is het ook een kwestie van beleefdheid dit aan de gebruiker te vragen voordat een bestaande koppeling wordt overgenomen.

Met de volgende methoden van de klasse NativeApplication kan een toepassing de bestandskoppelingen beheren. Elke methode gebruikt de bestandstype-extensie als parameter:

Methode

Beschrijving

isSetAsDefaultApplication()

Is true (waar) als de AIR-toepassing momenteel aan het opgegeven bestandstype is gekoppeld.

setAsDefaultApplication()

Maakt de koppeling tussen de AIR-toepassing en de openingsactie van het bestandstype.

removeAsDefaultApplication()

Verwijdert de koppeling tussen de AIR-toepassing en het bestandstype.

getDefaultApplication()

Toont het pad van de toepassing die momenteel aan het bestandstype is gekoppeld.

AIR kan alleen koppelingen beheren voor de bestandstypen die oorspronkelijk zijn geregistreerd in de toepassingsdescriptor. U kunt geen informatie ophalen over de koppelingen van een niet-geregistreerd bestandstype, zelfs als een gebruiker handmatig de koppeling heeft gemaakt tussen dat bestandstype en uw toepassing. Als een van de beheermethoden voor bestandskoppelingen wordt opgeroepen met de extensie voor een bestandstype dat niet is geregistreerd in de toepassingsdescriptor, genereert de toepassing een runtime-uitzondering.

De runtimeversie en het patchniveau ophalen

Het NativeApplication-object heeft de eigenschap runtimeVersion ; dit is de versie van de runtime waarin de toepassing wordt uitgevoerd (een tekenreeks, bijvoorbeeld "1.0.5" ). Het NativeApplication-object heeft ook de eigenschap runtimePatchLevel ; dit is het patchniveau van de runtime (een getal, bijvoorbeeld 2960). De volgende code maakt gebruik van deze eigenschappen:

trace(NativeApplication.nativeApplication.runtimeVersion); 
trace(NativeApplication.nativeApplication.runtimePatchLevel); 

AIR-mogelijkheden detecteren

Voor een bestand dat bij de Adobe AIR-toepassing gebundeld zit, wordt de eigenschap Security.sandboxType ingesteld op de waarde die is gedefinieerd door de constante Security.APPLICATION . U kunt inhoud (die al dan niet API's bevat die specifiek zijn voor AIR) laden op basis van het feit of het bestand zich in de Adobe AIR-beveiligingssandbox bevindt, zoals geïllustreerd in de volgende code:

if (Security.sandboxType == Security.APPLICATION) 
{ 
    // Load SWF that contains AIR APIs 
} 
else 
{ 
    // Load SWF that does not contain AIR APIs 
} 

Alle bronnen die niet samen met de AIR-toepassing zijn geïnstalleerd, worden aan dezelfde beveiligingssandboxen toegewezen die door Adobe® Flash® Player in een webbrowser zouden worden toegewezen. Externe bronnen worden in sandboxen geplaatst op basis van hun brondomeinen, terwijl lokale bronnen in de lokaal-met-netwerk, lokaal-met-bestandssysteem of lokaal-vertrouwde sandbox worden geplaatst.

U kunt nagaan of de statische eigenschap Capabilities.playerType is ingesteld op "Desktop" om te controleren of inhoud wordt uitgevoerd in de runtime (en niet in Flash Player in een browser).

Zie Beveiliging in AIR voor meer informatie.

Gebruikersaanwezigheid bijhouden

Het NativeApplication-object verzendt twee gebeurtenissen waarmee u kunt controleren of een gebruiker actief een computer gebruikt. Als er geen muis- of toetsenbordactiviteit wordt vastgesteld tijdens de periode die is bepaald met de eigenschap NativeApplication.idleThreshold , verzendt NativeApplication de gebeurtenis userIdle . De volgende keer dat het toetsenbord of de muis wordt gebruikt, verzendt het NativeApplication-object de gebeurtenis userPresent . Het interval idleThreshold wordt gemeten in seconden en heeft standaard de waarde 300 (5 minuten). U kunt met de eigenschap NativeApplication.nativeApplication.lastUserInput ook het aantal seconden sinds de laatste gebruikersinvoer opvragen.

De volgende code stelt de drempel voor inactiviteit in op 2 minuten en luistert naar de gebeurtenissen userIdle en userPresent :

NativeApplication.nativeApplication.idleThreshold = 120; 
NativeApplication.nativeApplication.addEventListener(Event.USER_IDLE, function(event:Event) { 
    trace("Idle"); 
}); 
NativeApplication.nativeApplication.addEventListener(Event.USER_PRESENT, function(event:Event) { 
    trace("Present"); 
}); 
Opmerking: Tussen twee userPresent -gebeurtenissen wordt slechts één userIdle -gebeurtenis verzonden.