我已經編寫了一個AIR應用程序,用於從服務器下載視頻和文檔。視頻在應用程序內播放,但我希望用戶能夠在其本機應用程序中打開文檔。使用AIR/Flex打開本地文件
我正在尋找一種方法來提示用戶打開/另存爲存儲在應用程序存儲目錄中的本地文件。我嘗試過使用FileReference + URLRequest類,但是這會引發一個異常,它需要一個遠程URL。
我不得已纔剛剛將文件複製到他們的桌面:\
我已經編寫了一個AIR應用程序,用於從服務器下載視頻和文檔。視頻在應用程序內播放,但我希望用戶能夠在其本機應用程序中打開文檔。使用AIR/Flex打開本地文件
我正在尋找一種方法來提示用戶打開/另存爲存儲在應用程序存儲目錄中的本地文件。我嘗試過使用FileReference + URLRequest類,但是這會引發一個異常,它需要一個遠程URL。
我不得已纔剛剛將文件複製到他們的桌面:\
只有這樣我能想出如何做到這一點不只是移動文件,並告訴用戶是將其傳遞給瀏覽器。
navigateToURL(new URLRequest(File.applicationStorageDirectory.nativePath + "/courses/" + fileName));
目前Adobe不支持在那裏默認應用程序打開文件。將它傳遞給瀏覽器似乎是實現它的唯一方法。
然而,您可以使用FileStream並用一些JavaScript編寫一個小的html文件,該文件將iframe的位置設置爲該文件,然後在100ms左右後調用window.close()。然後在瀏覽器中打開該文件。
這是FluorineFx Aperture框架的第一個版本。
該框架爲AIR桌面應用程序提供本機操作系統集成(僅限Windows)支持。
該框架以非侵入式方式擴展Adobe AIR應用程序:只需將提供的庫與AIR應用程序重新分發,運行時框架將自動掛接到您的應用程序中。
特點
您可以使用新的openWithDefaultApplication();
功能是可用的文件類(我相信這只是在AIR 2提供)
如:
var file:File = File.desktopDirectory.resolvePath(fileLocation);
file.openWithDefaultApplication();
對於我來說:
var request:URLRequest = new URLRequest();
request.url = file.url;
navigateToURL(request, "_blank");
由於路徑「/ users/mydirectory/...」位於application sandbox之外,因此navigateToURL(file.nativePath)
未起作用。 AIR僅允許使用navigateToURL()
打開一些協議。