获取PhoneGap中资产文件夹的绝对路径

时间:2013-03-07 01:39:08

标签: android cordova phonegap-plugins

有没有办法在phonegap资产文件夹中获取图像的绝对路径?

我需要使用EmailComposer插件在邮件中附加图像的绝对路径。

EmailComposer插件需要这样的绝对路径:

 /storage/sdcard0/DCIM/Camera/20121124_125210.jpg

但是我想要附加的图像位于我的资源文件夹和这样的路径中:

file:///android_asset/www/img/logo.png

不起作用

3 个答案:

答案 0 :(得分:11)

以防有人仍在寻找解决方案。现在,Cordova实现了一种非常简单的方式来获取当前的应用程序目录(在Android,iOS和BlackBerry 10上受支持):

cordova.file.applicationDirectory

例如,如果您想访问res/audio目录中的音频文件(在www内),您只需要写下:

cordova.file.applicationDirectory + 'res/audio/my-audio-file.mp3'

Here是完整的文档

答案 1 :(得分:2)

看起来这是不可能的。

请参阅 https://groups.google.com/forum/#!topic/phonegap/Sw2wThOYm8c

根据西蒙在该主题中的回应,他说......

  

“你不能做你想做的事。资源目录中的文件在技术上并不在文件系统上,因此无法通过File API访问它们。这意味着调用window.resolveLocalFileSystemURI()不会返回给你一个FileEntry。它正确返回错误代码1,这是NOT_FOUND_ERR。“

您需要文件的绝对路径才能使电子邮件附件插件正常工作。不幸的是,如果文件位于assets文件夹中,则无法使用cordova的文件api来获取绝对路径。

有一个插件可以将文件从资源文件夹中复制出来并放在SD卡上。然后,您可以将此文件的确切位置传递到电子邮件附件插件。不幸的是,如果你打算使用更新的cordova版本,看起来下面的插件已经过时了。

https://github.com/gkcgautam/Asset2SD

答案 2 :(得分:0)

将'file:///android_asset/www/img/logo.png'传递给window.resolveLocalFileSystemURI(),得到的FileEntry.fullPath就是你想要的。 查看文档以获取详细示例: http://docs.phonegap.com/en/1.5.0/phonegap_file_file.md.html