本章節將討論 AIR 應用程式管理作業系統檔案關聯、偵測使用者活動,以及取得 Adobe® AIR® 執行階段相關資訊的方法。
管理檔案關聯
您必須在應用程式描述器中宣告應用程式和檔案類型之間的關聯。在安裝期間,AIR 應用程式的安裝程式會使 AIR 應用程式與每一個宣告的檔案類型產生關聯,除非有其它應用程式為預設的開啟應用程式,否則會讓 AIR 應用程式做為預設的開啟應用程式。AIR 應用程式安裝程序不會覆寫現有的檔案類型關聯。若要從其它應用程式接管該項關聯,請在執行階段呼叫
NativeApplication.setAsDefaultApplication()
方法。
確認所需的檔案關聯在您的應用程式啟動時都會就定位,是一種較好的作法。因為 AIR 應用程式的安裝程式不會覆寫現有的檔案關聯,而且使用者系統中的檔案關聯隨時都可能改變。當其它應用程式具有目前的檔案關聯時,事先詢問使用者後再接管現有的關聯也是有禮貌的作法。
下列 NativeApplication 類別的方法可以讓應用程式管理檔案關聯,每一個方法都會採用五種類型的副檔名做為參數:
方法
|
說明
|
isSetAsDefaultApplication()
|
如果 AIR 應用程式目前與指定的檔案類型有關聯,則傳回 true。
|
setAsDefaultApplication()
|
建立 AIR 應用程式和檔案類型的開啟動作之間的關聯。
|
removeAsDefaultApplication()
|
移除 AIR 應用程式和檔案類型之間的關聯。
|
getDefaultApplication()
|
報告目前與檔案類型有關聯之應用程式的路徑。
|
AIR 只能管理原本在應用程式描述器中宣告的檔案類型關聯。您無法取得未經宣告的檔案類型關聯,就算使用者已經手動建立檔案類型和應用程式之間的關聯也一樣。如果呼叫任何檔案類型管理方法時,提供的副檔名屬於應用程式描述器中未宣告的檔案類型,應用程式就會擲出執行階段例外。
取得執行階段版本的修補程式層級
NativeApplication 物件具有
runtimeVersion
屬性,這個屬性是應用程式在其中執行的執行階段版本 (字串,例如
"1.0.5"
)。NativeApplication 物件也具有
runtimePatchLevel
屬性,這個屬性是執行階段的修補程式層級 (數字,例如 2960)。下列程式碼會使用這些屬性:
trace(NativeApplication.nativeApplication.runtimeVersion);
trace(NativeApplication.nativeApplication.runtimePatchLevel);
偵測 AIR 功能
對於已合併至 Adobe AIR 應用程式的檔案,
Security.sandboxType
屬性會設定為
Security.APPLICATION
常數所定義的值。您可以根據 Adobe AIR 安全執行程序中是否有檔案載入內容 (此內容不一定包含 AIR 專屬 API),如下列程式碼所示範:
if (Security.sandboxType == Security.APPLICATION)
{
// Load SWF that contains AIR APIs
}
else
{
// Load SWF that does not contain AIR APIs
}
未與 AIR 應用程式一併安裝的所有資源都會指定給與 Adobe® Flash® Player 在網頁瀏覽器中所指定的相同安全執行程序。遠端資源會根據其來源網域放置於不同的安全執行程序中;而本機資源則會放置於「具有網路連線的本機」、「具有檔案系統的本機」或「本機信任」的安全執行程序中。
您可以檢查
Capabilities.playerType
是否設定為
"Desktop"
,以得知是否要在執行階段中 (而且不是在於瀏覽器中執行的 Flash Player 內) 執行內容。
如需詳細資訊,請參閱:
AIR 安全性
。
追蹤使用者狀態
NativeApplication 物件會傳送兩個事件,協助您偵測使用者是否正在使用電腦。在
NativeApplication.idleThreshold
屬性設定的時間間隔內,如果沒有偵測到任何滑鼠或鍵盤活動,NativeApplication 就會傳送
userIdle
事件。當下次發生鍵盤或滑鼠輸入活動時,NativeApplication 物件就會傳送
userPresent
事件。
idleThreshold
時間間隔是以秒為單位來量測,預設值為 300 (5 分鐘)。您也可以透過
NativeApplication.nativeApplication.lastUserInput
屬性,取得上次使用者輸入活動的秒數。
下列幾行程式碼會將閒置臨界值設定為 2 分鐘,並且偵聽
userIdle
和
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");
});
備註:
在任兩個
userPresent
事件之間,只會傳送一個
userIdle
事件。
|
|
|