2008-08-07 61 views
11

我已經編寫了一個AIR應用程序,用於從服務器下載視頻和文檔。視頻在應用程序內播放,但我希望用戶能夠在其本機應用程序中打開文檔。使用AIR/Flex打開本地文件

我正在尋找一種方法來提示用戶打開/另存爲存儲在應用程序存儲目錄中的本地文件。我嘗試過使用FileReference + URLRequest類,但是這會引發一個異常,它需要一個遠程URL。

我不得已纔剛剛將文件複製到他們的桌面:\

回答

2

只有這樣我能想出如何做到這一點不只是移動文件,並告訴用戶是將其傳遞給瀏覽器。

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

目前Adobe不支持在那裏默認應用程序打開文件。將它傳遞給瀏覽器似乎是實現它的唯一方法。

然而,您可以使用FileStream並用一些JavaScript編寫一個小的html文件,該文件將iframe的位置設置爲該文件,然後在100ms左右後調用window.close()。然後在瀏覽器中打開該文件。

2

這是FluorineFx Aperture框架的第一個版本。

該框架爲AIR桌面應用程序提供本機操作系統集成(僅限Windows)支持。

該框架以非侵入式方式擴展Adobe AIR應用程序:只需將提供的庫與AIR應用程序重新分發,運行時框架將自動掛接到您的應用程序中。

特點

  • 啓動本地應用程序和文檔與所提供的apsystem庫
  • 把整個屏幕的截圖與所提供的apimaging庫
  • 訪問Outlook聯繫人從所提供的AIR應用程序apoutlook圖書館

http://aperture.fluorinefx.com/

12

您可以使用新的openWithDefaultApplication();功能是可用的文件類(我相信這只是在AIR 2提供)

如:

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

對於我來說:

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

由於路徑「/ users/mydirectory/...」位於application sandbox之外,因此navigateToURL(file.nativePath)未起作用。 AIR僅允許使用navigateToURL()打開一些協議。