2014-09-27 56 views
0

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

我可以确认文件已保存,路径正确 - 因此文件应该是它的位置......我有以下由事件监听器触发的跟踪语句,以帮助验证文件是否存在和位置/路径:从我的测试

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 - 工程并打开本地Web浏览器就好了JPG。 2.)旧版Galaxy S II运行android 4.1.2 - 创建映像,但从不打开浏览器并且没有错误信息 3.)ios 7.1.2在iPhone 4S上 - 图像被创建,但本地url永不加载在所有

浏览器尝试加载的文件即时通讯使用下列内容:

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

基本上,我的问题是:有没有一个可靠的简单方式来加载一个文件(HTML或特别是在这种情况下, jpg)本地存储在applicationDocumentsDirectory中?

我忽视或误解了导航或访问documentsDirectory中的文件?

回答

2

您可能需要一个“协议头”添加到您的网址,如“文件:///” (是的,三个斜杠;-))

了解更多关于它in the AIR docs

如果你需要一个用户对话框,但你需要实现一个本地扩展。 我曾经找到过一个教程,在Android和iOS上执行本机“发送”对话框,这个对话框基本上是一样的。对不起,我现在没有链接。

相关问题