繁体   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