我一直试图通过当前的Air应用程序启动单独的Air应用程序。在Air 2.0应用程序中启动Air 2.0应用程序
这两个应用程序都使用Adobe Air 2.0 SDK进行编译。
到目前为止,我发现的方法还包括除了应用程序ID之外还传递了发布者ID,但是我相信发布者ID在Air 1.5.3之后变得多余了吗?
下面是我目前的实现,它似乎正确地确定了Air Application的版本号,但是当我尝试启动它时,似乎没有任何事情发生。
private static var _air:Object;
private static var _loader:Loader;
private static var appID:String = "someOtherAirApplication";
private static var pubID:String = NativeApplication.nativeApplication.publisherID;
public static function loadAir() : void
{
_loader = new Loader();
var loaderContext:LoaderContext = new LoaderContext();
loaderContext.applicationDomain = ApplicationDomain.currentDomain;
_loader.contentLoaderInfo.addEventListener(Event.INIT,onInit);
_loader.load(new URLRequest("http://airdownload.adobe.com/air/browserapi/air.swf"),loaderContext);
}
private static function onInit(event:Event) : void
{
_air = event.target.content;
//the pubID argument resolves to and empty string ""
_air.getApplicationVersion(appID, pubID, versionDetectCallback);
}
private static function versionDetectCallback(version:String) : void
{
if(version != null)
{
_air.launchApplication(appID,pubID);
}
}
我已经在我试图加载允许浏览器调用应用程序更改应用程序-config.xml中(应用程序描述符)。
我尝试加载的应用程序的应用程序描述符的版本号是versionDetectCallback似乎拾取的“V1”。如果是这种情况,我希望能够启动它,但似乎并非如此。
任何想法?
启动他们自己的应用程序,如果这适用于您,请分享脚本。谢谢。和imho如果试图找到其他方式将有趣使用系统bash文件/ bat文件来运行外部的东西。 – Eugene 2010-09-02 09:53:51