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
.
|
|
|