使用AIR / Flex打开本地文件

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

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

我最后的手段是将文件复制到他们的桌面上:\

0

5 答案

目前Adobe不支持在默认应用程序中打开文件。将它传递给浏览器似乎是实现它的唯一方法。

然而,您可以使用FileStream并使用一些javascript编写一个小的html文件,该文件将iframe的位置设置为该文件,然后在100ms左右后调用window.close()。然后在浏览器中打开该文件。

0
额外

只有这样,我才能知道如何做到这一点,而不仅仅是移动文件并告诉用户将它传递给浏览器。

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

对我来说是这样的:

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

navigateToURL(file.nativePath)不起作用,因为路径“/ users / mydirectory / ...”位于应用程序沙箱。 AIR仅允许使用 navigateToURL()打开某些协议。

0
额外

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

该框架为AIR桌面应用程序提供本机操作系统集成(仅限Windows)支持。

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

功能</强>

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

http://aperture.fluorinefx.com/

0
额外

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

例如:

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