使用AIR / Flex打开本地文件

时间:2020-03-05 18:38:24  来源:igfitidea点击:

我编写了一个AIR应用程序,可以从服务器下载视频和文档。视频在应用程序内部播放,但是我希望用户能够在其本机应用程序中打开文档。

我正在寻找一种提示用户在存储在应用程序存储目录中的本地文件上打开/另存为的方法。我尝试使用FileReference + URLRequest类,但这引发了一个异常,那就是它需要一个远程URL。

我的最后一招就是将文件复制到他们的桌面:\

解决方案

回答

我只能弄清楚如何做到这一点,而不仅仅是移动文件并告诉用户将其传递给浏览器。

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

回答

当前,adobe不支持在默认应用程序中打开文件。将其传递给浏览器似乎是使其工作的唯一方法。

但是,我们可以使用FileStream并使用一些Javascript编写一个小的html文件,该文件将iframe的位置设置为该文件,然后在100毫秒左右后调用window.close()。然后在浏览器中打开该文件。

回答

这是FluorineFx Aperture框架的第一个版本。

该框架为AIR桌面应用程序提供了本机OS集成(仅Windows)支持。

该框架以一种非侵入性的方式扩展了Adobe AIR应用程序:只需将所提供的库随AIR应用程序一起重新分发,在运行时,框架将自动挂接到应用程序中。

特征

  • 使用提供的apsystem库启动本机应用程序和文档
  • 使用提供的apimaging库获取整个屏幕的屏幕截图
  • 使用提供的apoutlook库从Air应用程序访问Outlook联系人

http://aperture.fluorinefx.com/

回答

我们可以使用File类上可用的新openWithDefaultApplication();函数(我相信它仅在AIR 2中可用)

例如:

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