Abra o arquivo local com AIR/Flex
-
08-06-2019 - |
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:\
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
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()
.