2013-03-07 154 views
12

有沒有辦法在電話資產文件夾中獲取圖像的絕對路徑?獲取PhoneGap中資產文件夾的絕對路徑

我需要使用EmailComposer插件在郵件中附加圖像的絕對路徑。

EmailComposer插件想要的絕對路徑是這樣的:

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

但我要附加的圖像是在我的資產文件夾,這樣的路徑:

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

不起作用

回答

2

看起來這是不可能的。

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

從西蒙在該線程他指出響應...

「你不能,你想做什麼事情。這些文件中的資產目錄在技術上不上文件系統,所以他們不能通過File API訪問,這意味着調用窗口resolveLocalFileSystemURI()不會返回給你一個FileEntry,它正確地返回一個錯誤代碼1,它是NOT_FOUND_ERR。「

您需要電子郵件附件插件的文件的絕對路徑才能工作。不幸的是,如果文件駐留在資產文件夾中,則不能使用cordova的文件api來獲取絕對路徑。

存在一個插件,用於將文件從資產文件夾中複製出來並放到SD卡上。然後,您可以將此文件的確切位置傳遞給電子郵件附件插件。不幸的是,如果您計劃使用更新的cordova版本,它看起來像下面的插件已過時。

https://github.com/gkcgautam/Asset2SD

+1

我不能評論其他人的答案,因爲我沒有足夠的分數,但是靈體的答案是不正確的。請參閱上面的答案,解釋爲什麼它不正確。它可能可以在老版本的android和phonegap上工作,但它絕對不適用於cordova/phonegap 2.0.0 +。不幸的是,這種方法不適用於存儲在apk中的文件。 – njtman 2013-04-20 16:22:17

9

以防萬一有人仍在尋找解決方案。現在科爾多瓦實現了一個非常簡單的方法來獲取當前應用程序目錄(支持Android,iOS和黑莓10):

cordova.file.applicationDirectory

例如,如果您要訪問的音頻文件在你的res/audio目錄(內您www),你就必須寫:

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

下面是完整的文檔:https://github.com/apache/cordova-plugin-file/#where-to-store-files

+3

我相信你會需要它是cordova.file.applicationDirectory +'www /'+'res/audio/my-audio-file.mp3'至少這就是iOS對我的行爲。 – edhubbell 2015-05-19 04:27:18

+0

像@edhubbell,我還需要添加'www /'。 – mauvm 2015-07-14 09:55:06

+1

cordova.file.applicationDirectory對我來說只是一個例外(未定義) – andreimarinescu 2016-05-16 15:57:10