若要使用浏览器调用功能(使其可以从浏览器启动),目标应用程序的应用程序描述符文件必须包含以下设置:
<allowBrowserInvocation>true</allowBrowserInvocation>
有关应用程序描述符文件的详细信息,请参阅
AIR 应用程序描述符文件
。
浏览器中的 SWF 文件可以通过在从 http://airdownload.adobe.com/air/browserapi/air.swf 加载的 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 文件所在的应用程序域中加载)的顶级定义。调用此方法将导致 AIR 启动指定的应用程序(如果该应用程序已安装,且通过应用程序描述符文件中的
allowBrowserInvocation
设置允许浏览器调用)。此方法具有以下参数:
参数
|
说明
|
appID
|
要启动的应用程序的应用程序 ID。有关详细信息,请参阅
id
。
|
pubID
|
要启动的应用程序的发行商 ID。有关详细信息,请参阅
publisherID
。如果所讨论的应用程序没有发行商 ID,请将
pubID
参数设置为空字符串 (“”)。
|
arguments
|
要传递给此应用程序的参数数组。此应用程序的 NativeApplication 对象调度 arguments 属性设置为此数组的 BrowserInvokeEvent 事件。参数中只能识别字母数字字符。如果需要传递其他值,请考虑使用编码方案。
|
仅当在用户事件(例如鼠标单击)的事件处理程序中调用
launchApplication()
方法时,此方法才执行。
如果浏览器中未安装所需的 Flash Player 版本(Windows 和 Mac OS 中为版本 9 更新 3 或更高版本,Linux 中为版本 10),则
launchApplication()
方法会引发错误。
如果在应用程序描述符文件中将
allowBrowserInvocation
元素设置为
false
,则调用
launchApplication()
方法将不起任何作用。
在显示用于启动应用程序的用户界面之前,您可能需要在 air.swf 文件中调用
getApplicationVersion(
) 方法。有关详细信息,请参阅
从网页检查是否已安装 AIR 应用程序
。
当通过浏览器调用功能调用此应用程序时,此应用程序的 NativeApplication 对象将调度 BrowserInvokeEvent 对象。有关详细信息,请参阅
从浏览器调用 AIR 应用程序
(针对 ActionScript 开发人员)或
从浏览器调用 AIR 应用程序
(针对 HTML 开发人员)。
如果使用浏览器调用功能,请务必考虑安全性问题。
从浏览器调用 AIR 应用程序
(针对 ActionScript 开发人员)和
从浏览器调用 AIR 应用程序
(针对 HTML 开发人员)中介绍了这些含义。
此应用程序运行后便可以通过使用 LocalConnection 类与浏览器中的 SWF 内容通信。有关详细信息,请参阅
与其他 Flash Player 和 AIR 实例通信
(针对 ActionScript 开发人员)或
与其他 Flash Player 和 AIR 实例通信
(针对 HTML 开发人员)。
注:
从 AIR 1.5.3 开始,将弃用发行商 ID。不再自动向应用程序分配发行商 ID。为了向后兼容,应用程序可以继续指定发行商 ID。