Praca z informacjami o środowisku wykonawczym AIR i systemie operacyjnym

Adobe AIR 1.0 i wersje późniejsze

W tej sekcji omówiono metody zarządzania przypisaniami typów plików w systemie operacyjnym, wykrywania aktywności użytkownika i pobierania informacji o środowisku wykonawczym Adobe® AIR® z poziomu aplikacji AIR.

Zarządzanie skojarzeniami plików

Skojarzenia między aplikacją a typem pliku muszą być zadeklarowane w deskryptorze aplikacji. W procesie instalacji instalator aplikacji AIR kojarzy tę aplikację jako domyślną aplikację otwierającą ze wszystkimi zadeklarowanymi typami plików, chyba że dla danego typu pliku jest już przypisana inna aplikacja domyślna. W procesie instalacji aplikacji AIR nie są zmieniane istniejące skojarzenia z typami plików. Aby przejąć skojarzenie z innej aplikacji, należy wywołać metodę NativeApplication.setAsDefaultApplication() w czasie wykonywania.

Do dobrych praktyk należy sprawdzanie w momencie uruchamiania aplikacji, czy oczekiwane skojarzenia plików są zdefiniowane. Wynika to z faktu, że instalator aplikacji AIR nie przesłania istniejących skojarzeń z plikami, a ponadto skojarzenia w systemie użytkownika mogą ulegać zmianie w dowolnym momencie. Gdy typ pliku jest skojarzony z inną aplikacją, dobrym zwyczajem jest zapytanie użytkownika o zgodę przed wymuszeniem zmiany tego skojarzenia.

Poniższe metody klasy NativeApplication umożliwiają zarządzanie skojarzeniami plików. Parametrem każdej z tych metod jest rozszerzenie plików określające ich typ:

Metoda

Opis

isSetAsDefaultApplication()

Zwraca wartość true, jeśli aplikacja AIR jest obecnie skojarzona z określonym typem plików.

setAsDefaultApplication()

Tworzy skojarzenie między aplikacją AIR a operacją otwierania plików danego typu.

removeAsDefaultApplication()

Usuwa skojarzenie między aplikacją AIR a typem plików.

getDefaultApplication()

Zwraca ścieżkę aplikacji, która jest obecnie skojarzona z typem plików.

Środowisko AIR może zarządzać tylko tymi skojarzeniami z typami plików, które zostały pierwotnie zadeklarowane w deskryptorze aplikacji. Nie można uzyskać informacji o skojarzeniach niezadeklarowanych typów plików, nawet jeśli użytkownik ręcznie utworzył skojarzenie między danym typem plików a aplikacją. Wywołanie którejkolwiek z metod do zarządzania skojarzeniami typów plików dla typu niezadeklarowanego w deskryptorze aplikacji spowoduje wygenerowanie wyjątku w czasie wykonywania.

Sprawdzanie wersji środowiska wykonawczego i poziomu poprawek

Obiekt NativeApplication ma właściwość runtimeVersion wskazującą na wersję środowiska wykonawczego, w którym działa aplikacja (jest to ciąg znaków, np. "1.0.5"). Obiekt NativeApplication ma także właściwość runtimePatchLevel wskazującą na poziom poprawek środowiska wykonawczego (jest to liczba, np. 2960). Właściwości te zostały wykorzystane w poniższym kodzie:

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

Wykrywanie możliwości środowiska AIR

W przypadku pliku powiązanego z aplikacją Adobe AIR właściwość Security.sandboxType jest ustawiona na wartość zdefiniowaną przez stałą Security.APPLICATION. Aplikacja może ładować treść (która może, ale nie musi zawierać wywołań API charakterystycznych dla środowiska AIR) w zależności od tego, czy plik znajduje się w obszarze izolowanym zabezpieczeń środowiska Adobe AIR, co ilustruje poniższy kod:

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

Wszystkie zasoby, które nie są instalowane razem z aplikacją AIR, są przypisywane do tych samych obszarów izolowanych, do których byłyby przypisane przez program Adobe® Flash® Player w przeglądarce sieci Web. Zasoby zdalne są umieszczane w obszarach izolowanych odpowiednio do ich domen źródłowych, a zasoby lokalne są umieszczane w obszarze izolowanym lokalnym z obsługą sieci, lokalnym z systemem plików lub lokalnym zaufanym.

Aby ustalić, czy treść jest wykonywana w środowisku wykonawczym (a nie w odtwarzaczu Flash Player uruchomionym w przeglądarce), można sprawdzić, czy wartość właściwości statycznej Capabilities.playerType jest równa "Desktop".

Więcej informacji zawiera sekcja Zabezpieczenia w środowisku AIR.

Monitorowanie obecności użytkownika

Obiekt NativeApplication wywołuje dwa zdarzenia, które pomagają w określeniu, czy użytkownik aktywnie korzysta z komputera. Jeśli w okresie zdefiniowanym przez właściwość NativeApplication.idleThreshold nie zostanie wykryta aktywność myszy lub klawiatury, obiekt NativeApplication wywołuje zdarzenie userIdle. Gdy ponownie zajdzie zdarzenie związane z aktywnością klawiatury lub myszy, obiekt NativeApplication wywoła zdarzenie userPresent. Okres idleThreshold jest mierzony w sekundach, a jego wartość domyślna to 300 (5 minut). Właściwość NativeApplication.nativeApplication.lastUserInput zawiera liczbę sekund od ostatniego przejawu aktywności użytkownika.

Poniższe wiersze kodu ustawiają próg bezczynności na 2 minuty i wykrywają zdarzenia userIdle i 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"); 
}); 
Uwaga: Między każdymi dwoma zdarzeniami userPresent wywoływane jest tylko jedno zdarzenie userIdle.