Frage

Ich habe eine AIR-Anwendung geschrieben, die Videos und Dokumente von einem Server herunterlädt.Die Videos werden innerhalb der Anwendung abgespielt, aber ich möchte, dass der Benutzer die Dokumente in seinen nativen Anwendungen öffnen kann.

Ich suche nach einer Möglichkeit, den Benutzer zum Öffnen/Speichern unter einer lokalen Datei aufzufordern, die im Anwendungsspeicherverzeichnis gespeichert ist.Ich habe versucht, die Klassen FileReference + URLRequest zu verwenden, aber dies löst eine Ausnahme aus, dass eine Remote-URL erforderlich ist.

Mein letzter Ausweg besteht darin, die Datei einfach auf ihren Desktop zu kopieren:\

War es hilfreich?

Lösung 2

Ich konnte nur herausfinden, wie es geht, ohne die Datei einfach zu verschieben und dem Benutzer mitzuteilen, dass er sie an den Browser weitergeben soll.

navigateToURL(new URLRequest(File.applicationStorageDirectory.nativePath + "/courses/" + fileName));

Andere Tipps

Sie können das Neue verwenden openWithDefaultApplication(); Funktion, die in der File-Klasse verfügbar ist (ich glaube, sie ist nur in AIR 2 verfügbar)

z.B:

var file:File = File.desktopDirectory.resolvePath(fileLocation);
file.openWithDefaultApplication();

Dies ist die erste Version des FluorineFx Aperture-Frameworks.

Das Framework bietet Unterstützung für die native Betriebssystemintegration (nur Windows) für AIR-Desktopanwendungen.

Das Framework erweitert Adobe AIR-Anwendungen auf nicht-intrusive Weise:Verteilen Sie einfach die bereitgestellten Bibliotheken mit Ihrer AIR-Anwendung neu. Zur Laufzeit wird sich das Framework automatisch in Ihre Anwendung einbinden.

Merkmale

  • Starten Sie native Anwendungen und Dokumente mit der bereitgestellten Apsystem-Bibliothek
  • Machen Sie mit der bereitgestellten Apimaging-Bibliothek Screenshots des gesamten Bildschirms
  • Greifen Sie mit der bereitgestellten apoutlook-Bibliothek über eine Air-Anwendung auf Outlook-Kontakte zu

http://aperture.fluorinefx.com/

Derzeit unterstützt Adobe das Öffnen von Dateien in seinen Standardanwendungen nicht.Die Weitergabe an den Browser scheint die einzige Möglichkeit zu sein, damit es funktioniert.

Sie könnten jedoch einen FileStream verwenden und eine kleine HTML-Datei mit etwas Javascript schreiben, das den Speicherort eines Iframes in der Datei festlegt, und dann nach etwa 100 ms window.close() aufrufen.Öffnen Sie dann diese Datei im Browser.

Für mich ist es:

var request:URLRequest = new URLRequest();
request.url = file.url;
navigateToURL(request, "_blank");

Der navigateToURL(file.nativePath) hat nicht funktioniert, da der Pfad „/users/mydirectory/...“ außerhalb von lag Anwendungs-Sandbox.Mit AIR können nur einige Protokolle geöffnet werden navigateToURL().

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top