12

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

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

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

4

5 回答 5

13

您可以使用 File 类上可用的新openWithDefaultApplication();功能(我相信它仅在 AIR 2 中可用)

例如:

var file:File = File.desktopDirectory.resolvePath(fileLocation);
file.openWithDefaultApplication();
于 2010-07-13T00:28:03.707 回答
3

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

navigateToURL(new URLRequest(File.applicationStorageDirectory.nativePath + "/courses/" + fileName));
于 2008-08-07T20:25:47.293 回答
2

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

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

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

特征

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

http://aperture.fluorinefx.com/

于 2009-07-23T12:03:15.183 回答
0

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

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

于 2008-08-14T15:32:09.147 回答
0

对我来说是:

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

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

于 2015-08-26T11:28:41.940 回答