簡體   English   中英

使用AIR / Flex打開本地文件

[英]Open local file with AIR / Flex

我編寫了一個AIR應用程序,可以從服務器下載視頻和文檔。 視頻在應用程序內部播放,但我希望用戶能夠在其本機應用程序中打開文檔。

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

我的最后一招只是將文件復制到桌面:\\

您可以使用新的openWithDefaultApplication(); File類上可用的函數(我相信它僅在AIR 2中可用)

例如:

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

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

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

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

特征

  • 使用提供的apsystem庫啟動本機應用程序和文檔
  • 使用提供的apimaging庫獲取整個屏幕的屏幕截圖
  • 使用提供的apoutlook庫從Air應用程序訪問Outlook聯系人

http://aperture.fluorinefx.com/

只有這樣我才能弄清楚如何在不移動文件的情況下做到這一點並告訴用戶將其傳遞給瀏覽器。

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

目前adobe不支持在默認應用程序中打開文件。 將它傳遞給瀏覽器似乎是使它工作的唯一方法。

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

對我而言:

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

navigateToURL(file.nativePath)不起作用,因為路徑“/ users / mydirectory / ...”在應用程序沙箱之外。 AIR僅允許使用navigateToURL()打開某些協議。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM