Pregunta

He escrito una aplicación AIR que descarga vídeos y documentos desde un servidor.Los videos se reproducen dentro de la aplicación, pero me gustaría que el usuario pudiera abrir los documentos en sus aplicaciones nativas.

Estoy buscando una manera de solicitar al usuario que abra/guarde como en un archivo local almacenado en el directorio de almacenamiento de la aplicación.Intenté usar las clases FileReference + URLRequest pero esto genera una excepción de que necesita una URL remota.

Mi último recurso es simplemente copiar el archivo a su escritorio:\

¿Fue útil?

Solución 2

La única manera de descubrir cómo hacerlo sin simplemente mover el archivo y decirle al usuario era pasarlo al navegador.

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

Otros consejos

Puedes usar el nuevo openWithDefaultApplication(); función que está disponible en la clase Archivo (creo que solo está disponible en AIR 2)

p.ej:

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

Esta es la primera versión del marco FluorineFx Aperture.

El marco proporciona compatibilidad con la integración nativa del sistema operativo (solo Windows) para aplicaciones de escritorio de AIR.

El marco amplía las aplicaciones de Adobe AIR de forma no intrusiva:simplemente redistribuya las bibliotecas proporcionadas con su aplicación de AIR; en tiempo de ejecución, el marco se conectará automáticamente a su aplicación.

Características

  • Inicie aplicaciones y documentos nativos con la biblioteca apsystem proporcionada
  • Tome capturas de pantalla de toda la pantalla con la biblioteca apimaging proporcionada
  • Acceda a los contactos de Outlook desde una aplicación Air con la biblioteca apoutlook proporcionada

http://aperture.fluorinefx.com/

Actualmente, Adobe no admite la apertura de archivos en sus aplicaciones predeterminadas.Pasarlo al navegador parece ser la única forma de hacerlo funcionar.

Sin embargo, puede usar un FileStream y escribir un pequeño archivo html con algo de javascript que establezca la ubicación de un iframe en el archivo, luego, después de aproximadamente 100 ms, llame a window.close().Luego abra ese archivo en el navegador.

Para mi es:

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

El navigateToURL(file.nativePath) no funcionó ya que la ruta "/usuarios/midirectorio/..." estaba fuera del zona de pruebas de aplicaciones.AIR solo permite abrir algunos protocolos con navigateToURL().

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top