我可以使用as3 navigateToURL()在flex mobile AIR documentsDirectory中打开新创建的JPG文件吗?

时间:2014-09-27 04:41:53

标签: android actionscript-3 flex air flash-builder

我正在使用flash builder 4.6和flex 4.12.1 sdk并有一个例程,我使用DISTRIQT相机ANE拍照,将其作为位图图像添加到UI,使用BYTEARRAY将新图像保存到应用程序documentsDirectory ...然后我尝试使用navigateToURL在默认的Web浏览器或用户选择的任何已安装的应用程序中打开该图像(后者是首选解决方案,但前者就足够了)...我希望我可以使用as3的openWithDefaultApplication(),但它在AIR mobile sdk上不可用。

我可以确认文件已保存并且其路径是准确的 - 因此该文件应该在哪里...我有一个事件监听器触发的以下跟踪语句,以帮助验证文件的存在和位置/路径:

trace('exists? ' + targetFile.exists);   // shows console message --  exists? true
trace('the url: ' + targetFile.url);  // shows console message --  the url: trace('path: ' +     
targetFile.nativePath); // shows console message --  path: /storage/sdcard0/test.jpg

我的测试结果:

1。)HTC One,运行android 4.4.2 - 工作并在原生网页浏览器中打开jpg就好了。 2.)运行android 4.1.2的旧版Galaxy S II - 创建图像但从不打开浏览器并且没有错误消息 3.)iphone 4S上的ios 7.1.2 - 图像已创建,但本地网址从未在浏览器中加载

尝试使用以下内容加载文件:

var targetFile : File = File.documentsDirectory.resolvePath('test.jpg');
var targetURL2: String =   targetFile.url;
navigateToURL( new URLRequest( targetURL2 ));

基本上,我的问题是:是否有一种可靠的简单方法来加载本地存储在applicationDocumentsDirectory中的文档(html或特别是在本例中为jpg)?

我对navigationtourl或者文档目录中的文件有什么看法或误解?

1 个答案:

答案 0 :(得分:2)

您可能需要添加"协议标题"你的网址就像" file:///" (是的,三个斜线;-))

详细了解in the AIR docs

如果您需要用户对话框,则需要实现本机扩展。 我曾经找到一个教程,做一个本地的" send-to" Android和iOS中的对话框基本相同。对不起,我现在还没有手头的链接。