Praca z informacjami o środowisku wykonawczym AIR i systemie operacyjnym

Adobe AIR 1.0 i starsze wersje

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 .