Я пытался запустить отдельное приложение Air через мое текущее приложение Air.
Оба приложения скомпилированы с использованием Adobe Air 2.0 SDK.
Методы, которые я нашел до сих пор, включают передачу идентификатора издателя в дополнение к идентификатору приложения, но я считаю, что идентификатор издателя стал избыточным после 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);
}
}
Я изменил app-config.xml (дескриптор приложения) в приложении, которое я пытаюсь загрузить, чтобы разрешить вызов браузера.
Номер версии дескриптора приложения моего приложения, которое я пытаюсь загрузить, - «V1», который versionDetectCallback, похоже, подхватывает. Если это так, я ожидал, что смогу запустить его, но это не так.
Есть идеи?