ERLEDIGT
NEIN
NEIN
ANTWORTEN
1
1
ZUGRIFFE
1651
1651
EMPFEHLEN
-
07.01.10 14:40 #1
- Registriert seit
- Jan 2004
- Ort
- Paderborn
- Beiträge
- 1.210
Hallo!
Ich möchte eine Air/Flex-Anwendung aus einer anderen Air/Flex-Anwendung heraus starten.
Dazu nutze ich die air.swf Browserapi, die unter anderem die launchApplication-Methode zur Verfügung stellt.
Weitere Informationen: http://help.adobe.com/de_DE/AIR/1.5/...8666ade46-7c88
Diese API ist zwar für die Verwendung aus einem Browser heraus gedacht, allerdings lässt sie sich auch in einer Anwendung laden und verwenden.
Die Methoden launchApplication und installApplication funktionieren. Die Methode getApplicationVersion funktioniert an sich auch.
Nur wenn ich getApplicationVersion mit den beiden anderen Methoden kombiniere, bekomme ich Probleme.
Ich möchte meine zweite Anwendung installieren und starten bzw. nur starten, wenn die Anwendung bereits installiert wurde.
Also überprüfe ich mit getApplicationVersion ob meine Anwendung bereits installiert wurde. Dieser Methode ist asynchron und ihr wird eine Callback-Funktion übergeben.
Aus dieser Callback-Funktion kann ich allerdings die Methoden launchApplication und installApplication nicht mehr verwenden.
Die Version der Anwendung, falls installiert, wird richtig erkannt. Leider bekomme ich auch keine Fehlermeldungen, es tut sich garnichts.
Ich könnte mir gut vorstellen, dass es daran liegt, dass getApplicationVersion asynchron arbeitet. Habt ihr irgendwelche Ideen, wie man das Problem lösen könnte?
Hier mein Quellcode:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
private var airSWF:Object; private var airSWFLoader:Loader = new Loader(); private var loaderContext:LoaderContext = new LoaderContext(); private var appID:String = "de.jmaicher.air.prototyp.target"; private var pubID:String = "D7D4210ABBE74AC0334651B75699215AB0B4AB0E.1"; private var appInstallURL:String = "http://localhost/prototyp_target.air"; /* init method */ private function init() : void { loaderContext.applicationDomain = ApplicationDomain.currentDomain; airSWFLoader.contentLoaderInfo.addEventListener(Event.INIT, initAirSWF); airSWFLoader.load(new URLRequest("http://airdownload.adobe.com/air/browserapi/air.swf"), loaderContext); } private function initAirSWF(e:Event):void { airSWF = e.target.content; } private function installCheck(version:String) { if(version == null) { installApplication(); } else { startApplication(); } } private function btnRunApp_click(e:MouseEvent):void { airSWF.getApplicationVersion(appID, pubID, installCheck); } private function startApplication() : void { var args:Array = ["launchFromBrowser"]; airSWF.launchApplication(appID, pubID, args); } private function installApplication() : void { var runtimeVersion:String = "1.0"; var args:Array = ["launchFromBrowser"]; airSWF.installApplication(appInstallURL, runtimeVersion, args); }
-
07.01.10 15:01 #2
- Registriert seit
- Jan 2004
- Ort
- Paderborn
- Beiträge
- 1.210
Okay, ich denke ich weiß warum. Ich habe in der Dokumentation den folgenden kleiner, aber feinen Abschnitt übersehen.
Weiteres Problem: Wie komme ich in der gestarteten Anwendung an die übergebenen Parameter?Die Methode launchApplication() funktioniert nur, wenn sie in einer Ereignisprozedur für ein Benutzerereignis, zum Beispiel einen Mausklick, aufgerufen wurde.
Ähnliche Themen
-
eclipse RCP Anwendung programmatisch / aus einem anderen Programme starten?
Von erazor85 im Forum JavaAntworten: 2Letzter Beitrag: 01.09.10, 09:30 -
Aus RCP Anwendung heraus OSGI Jetty Bundle starten
Von OSGIAnfaenger im Forum JavaAntworten: 2Letzter Beitrag: 03.11.09, 20:17 -
Externe Anwendung im FLEX bzw. AIR
Von Thomi123 im Forum Adobe Flex & AIRAntworten: 2Letzter Beitrag: 03.04.09, 09:23 -
flex anwendung / bilder resize und upload
Von frankso im Forum Stellenangebote (entgeltlich)Antworten: 0Letzter Beitrag: 07.12.08, 12:30 -
Anwendung starten mit anderen Locale
Von maddos im Forum JavaAntworten: 3Letzter Beitrag: 28.08.07, 14:17





Zitieren
Login




