若要使用瀏覽器叫用功能 (以便可從瀏覽器啟動應用程式),目標應用程式的應用程式描述器檔案必須包含下列設定:
<allowBrowserInvocation>true</allowBrowserInvocation>
如需有關應用程式描述器檔案的詳細資訊,請參閱
AIR 應用程式描述器檔案
。
瀏覽器內的 SWF 檔可藉由呼叫 air.swf 檔案 (載入來源為 http://airdownload.adobe.com/air/browserapi/air.swf) 所提供的
launchApplication()
方法,啟動 AIR 應用程式。如需詳細資訊,請參閱
載入 air.swf 檔案
。
一旦載入 air.swf 檔案之後,SWF 檔即可呼叫 air.swf 檔案的
launchApplication()
方法,如下列程式碼所示:
var appID:String = "com.example.air.myTestApplication";
var pubID:String = "02D88EEED35F84C264A183921344EEA353A629FD.1";
var arguments:Array = ["launchFromBrowser"]; // Optional
airSWF.launchApplication(appID, pubID, arguments);
launchApplication()
方法定義於 air.swf 檔案的頂層 (後者是載入到使用者介面 SWF 檔的應用程式網域)。若已安裝指定的應用程式,且應用程式描述器檔案中的
allowBrowserInvocation
設定為允許瀏覽器叫用功能,呼叫此方法將導致 AIR 啟動該應用程式。這個方法具有下列參數:
參數
|
說明
|
appID
|
要啟動之應用程式的應用程式 ID。如需詳細資訊,請參閱
id
。
|
pubID
|
要啟動之應用程式的發行者 ID。如需詳細資訊,請參閱
publisherID
。如果提到的應用程式沒有發行者 ID,請將
pubID
參數設定成空字串 ("")。
|
arguments
|
要傳遞至應用程式的引數陣列。應用程式的 NativeApplication 物件會傳送 BrowserInvokeEvent 事件,而該事件的 arguments 屬性即是設定成此陣列。引數中只能辨識英數字母字元。如需傳遞其它值,請考慮使用編碼資料結構。
|
您必須在使用者事件 (例如按下滑鼠) 的事件處理常式中呼叫
launchApplication()
方法,否則此方法不能運作。
如果瀏覽器並未安裝必要的 Flash Player 版本 (若使用 Windows 和 Mac OS,則安裝第 9 版更新 3 或更新版本;若使用 Linux,則安裝第 10 版),
launchApplication()
方法就會擲出錯誤。
如果應用程式描述器檔案將
allowBrowserInvocation
元素設定為
false
,呼叫
launchApplication()
方法就沒有任何效用。
您或許可以先呼叫 air.swf 檔案所提供的
getApplicationVersion()
方法,再決定是否顯示使用者介面告知即將啟動應用程式。如需詳細資訊,請參閱
從網頁檢查是否已安裝 AIR 應用程式
。
透過瀏覽器叫用功能叫用應用程式時,應用程式的 NativeApplication 物件會傳送 BrowserInvokeEvent 事件。如需詳細資訊,請參閱
從瀏覽器叫用 AIR 應用程式
(適用於 ActionScript 開發人員) 或
Invoking an AIR application from the browser
(適用於 HTML 開發人員)。
如果您要使用瀏覽器叫用功能,請務必考量安全性方面的隱憂。這些隱憂將描述於
從瀏覽器叫用 AIR 應用程式
(適用於 ActionScript 開發人員) 和
Invoking an AIR application from the browser
(適用於 HTML 開發人員)。
執行中的應用程式可以使用 LocalConnection 類別,與瀏覽器內的 SWF 內容進行通訊。如需詳細資訊,請參閱
與其他 Flash Player 和 AIR 實體進行通訊
(適用於 ActionScript 開發人員) 或
Communicating with other Flash Player and AIR instances
(適用於 HTML 開發人員)。
備註:
至於 AIR 1.5.3,不建議使用發行者 ID。發行者 ID 將不再自動指派給應用程式。為了回溯相容性,應用程式可以繼續指定發行者 ID。