有没有办法在 phonegap 资产文件夹中获取图像的绝对路径?
我需要使用 EmailComposer 插件在邮件中附加图像的绝对路径。
EmailComposer 插件需要这样的绝对路径:
/storage/sdcard0/DCIM/Camera/20121124_125210.jpg
但我要附加的图像在我的资产文件夹中,路径如下:
file:///android_asset/www/img/logo.png
不工作
有没有办法在 phonegap 资产文件夹中获取图像的绝对路径?
我需要使用 EmailComposer 插件在邮件中附加图像的绝对路径。
EmailComposer 插件需要这样的绝对路径:
/storage/sdcard0/DCIM/Camera/20121124_125210.jpg
但我要附加的图像在我的资产文件夹中,路径如下:
file:///android_asset/www/img/logo.png
不工作
以防万一有人仍在寻找解决方案。现在 Cordova 实现了一种非常简单的方法来获取当前应用程序目录(在 Android、iOS 和 BlackBerry 10 上支持):
cordova.file.applicationDirectory
例如,如果您想访问您的res/audio
目录(在您的www
)中的音频文件,您只需编写:
cordova.file.applicationDirectory + 'res/audio/my-audio-file.mp3'
这是完整的文档
看起来这是不可能的。
请参阅 https://groups.google.com/forum/#!topic/phonegap/Sw2wThOYm8c
从西蒙在那个帖子中的回应中,他说......
“你不能做你想做的事。资产目录中的文件在技术上不在文件系统上,因此无法通过文件 API 访问它们。这意味着调用 window.resolveLocalFileSystemURI() 不会返回 FileEntry。它正确返回错误代码 1,即 NOT_FOUND_ERR。"
您需要文件的绝对路径才能使电子邮件附件插件正常工作。不幸的是,如果文件位于 assets 文件夹中,则无法使用 cordova 的文件 api 获取绝对路径。
有一个插件可以将文件从您的资产文件夹中复制出来并将它们放到 sdcard 上。然后,您可以将此文件的确切位置传递给电子邮件附件插件。不幸的是,如果您打算使用较新的科尔多瓦版本,下面的插件似乎已经过时了。
将 'file:///android_asset/www/img/logo.png' 传递给 window.resolveLocalFileSystemURI() ,得到的 FileEntry.fullPath 就是你想要的。查看文档以获取详细示例: http ://docs.phonegap.com/en/1.5.0/phonegap_file_file.md.html