Pergunta

Eu escrevi um aplicativo AIR que baixa vídeos e documentos de um servidor.Os vídeos são reproduzidos dentro do aplicativo, mas gostaria que o usuário pudesse abrir os documentos em seus aplicativos nativos.

Estou procurando uma maneira de solicitar ao usuário que abra/salve como em um arquivo local armazenado no diretório de armazenamento de aplicativos.Eu tentei usar as classes FileReference + URLRequest, mas isso gera uma exceção de que precisa de um URL remoto.

Meu último recurso é apenas copiar o arquivo para a área de trabalho:\

Foi útil?

Solução 2

A única maneira de descobrir como fazer isso sem apenas mover o arquivo e dizer ao usuário era passá-lo para o navegador.

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

Outras dicas

Você pode usar o novo openWithDefaultApplication(); função que está disponível na classe File (acredito que esteja disponível apenas no AIR 2)

por exemplo:

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

Esta é a primeira versão da estrutura FluorineFx Aperture.

A estrutura fornece suporte nativo à integração de sistema operacional (somente Windows) para aplicativos de desktop AIR.

A estrutura estende os aplicativos Adobe AIR de maneira não intrusiva:basta redistribuir as bibliotecas fornecidas com seu aplicativo AIR; em tempo de execução, a estrutura se conectará automaticamente ao seu aplicativo.

Características

  • Inicie aplicativos e documentos nativos com a biblioteca apsystem fornecida
  • Faça capturas de tela de toda a tela com a biblioteca apimaging fornecida
  • Acesse os contatos do Outlook a partir de um aplicativo Air com a biblioteca apoutlook fornecida

http://aperture.fluorinefx.com/

Atualmente a Adobe não oferece suporte à abertura de arquivos em seus aplicativos padrão.Repassá-lo para o navegador parece ser a única maneira de fazê-lo funcionar.

No entanto, você pode usar um FileStream e escrever um pequeno arquivo html com algum javascript que defina a localização de um iframe para o arquivo e, depois de 100 ms ou mais, chamar window.close ().Em seguida, abra esse arquivo no navegador.

Para mim é:

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

O navigateToURL(file.nativePath) não funcionou porque o caminho "/users/mydirectory/..." estava fora do área restrita do aplicativo.O AIR permite apenas que alguns protocolos sejam abertos com navigateToURL().

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top