2008-08-07 28 views
11

J'ai créé 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 leurs applications natives.Ouvrir un fichier local avec AIR/Flex

Je cherche un moyen d'inviter l'utilisateur à ouvrir/enregistrer sous 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 nécessitant une URL distante.

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

Répondre

2

Je ne pouvais façon comprendre comment le faire sans juste déplacer le fichier et dire que l'utilisateur était de le faire passer au navigateur.

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

Actuellement, adobe ne prend pas en charge l'ouverture de fichiers dans les 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'un iframe dans le fichier, puis après environ 100ms appelle window.close(). Ensuite, ouvrez ce fichier dans le navigateur.

2

Ceci est la première version du framework FluorineFx Aperture.

L'infrastructure fournit une prise en charge native de l'intégration de SE (Windows uniquement) pour les applications de bureau AIR.

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

Caractéristiques

  • Lancement des applications natives et des documents avec la bibliothèque de apsystem fourni
  • captures d'écran de l'écran entier avec la bibliothèque de apimaging fourni
  • contacts accès Outlook depuis une application d'air avec la condition bibliothèque apoutlook

http://aperture.fluorinefx.com/

12

Vous pouvez utiliser la nouvelle fonction openWithDefaultApplication(); qui est disponible sur la classe File (je crois qu'il est seulement disponible dans AIR 2)

par exemple:

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

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 d'accès "/ users/mydirectory/..." était en dehors du application sandbox. AIR autorise uniquement l'ouverture de certains protocoles avec navigateToURL().