Question

J'ai écrit une application AIR qui télécharge des vidéos et des documents à partir d'un serveur.Les vidéos sont lues dans l'application, mais j'aimerais que l'utilisateur puisse ouvrir les documents dans ses applications natives.

Je cherche un moyen d'inviter l'utilisateur à ouvrir/enregistrer sous sur un fichier local stocké dans le répertoire de stockage d'applications.J'ai essayé d'utiliser les classes FileReference + URLRequest mais cela génère une exception selon laquelle elle a besoin d'une URL distante.

Mon dernier recours consiste simplement à copier le fichier sur leur bureau :\

Était-ce utile?

La solution 2

La seule façon pour moi de comprendre comment procéder sans simplement déplacer le fichier et informer l'utilisateur était de le transmettre au navigateur.

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

Autres conseils

Vous pouvez utiliser le nouveau openWithDefaultApplication(); fonction disponible sur la classe File (je crois qu'elle n'est disponible que dans AIR 2)

par exemple:

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

Il s'agit de la première version du framework FluorineFx Aperture.

Le framework fournit une prise en charge native de l'intégration du système d'exploitation (Windows uniquement) pour les applications de bureau AIR.

Le framework étend les applications Adobe AIR de manière non intrusive :redistribuez simplement les bibliothèques fournies avec votre application AIR, au moment de l'exécution, le framework se connectera automatiquement à votre application.

Caractéristiques

  • Lancez des applications et des documents natifs avec la bibliothèque apsystem fournie
  • Prenez des captures d'écran de tout l'écran avec la bibliothèque apimaging fournie
  • Accédez aux contacts Outlook depuis une application Air avec la bibliothèque apoutlook fournie

http://aperture.fluorinefx.com/

Actuellement, Adobe ne prend pas en charge l'ouverture de fichiers dans ses applications par défaut.Le transmettre au navigateur semble être le seul moyen de le faire fonctionner.

Vous pouvez cependant utiliser un FileStream et écrire un petit fichier HTML avec du javascript qui définit l'emplacement d'une iframe dans le fichier, puis après environ 100 ms, appelle window.close().Ensuite, ouvrez ce fichier dans le navigateur.

Pour moi, c'est:

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

Le navigateToURL(file.nativePath) ne fonctionnait pas car le chemin "/users/mydirectory/..." se trouvait en dehors du bac à sable d'applications.AIR permet uniquement d'ouvrir certains protocoles avec navigateToURL().

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top