2013-03-07 3 views
12

Есть ли способ получить абсолютный путь к изображению в папке с папкой phonegap?Получить абсолютный путь к папке с ресурсами в 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. "

Вам нужен абсолютный путь файла для плагина вложений электронной почты для работы. К сожалению, если файл находится в папке с ресурсами, вы не можете использовать файл api cordova для получения абсолютного пути.

Существует плагин, который существует для копирования файлов из вашей папки с данными и размещения их на SD-карте. Затем вы можете передать точное местоположение этого файла в плагин вложений электронной почты. К сожалению, похоже, что плагин ниже устарел, если вы планируете использовать новые версии кордовы.

https://github.com/gkcgautam/Asset2SD

+1

Я еще не могу комментировать ответы других людей, потому что у меня недостаточно очков, но ответ веры неверен. См. Мой ответ выше как объяснение, почему оно неверно. Возможно, возможно, он работал над более старыми версиями Android и телефонных разговоров, но он определенно не работает на cordova/phonegap 2.0.0 +.К сожалению, этот метод не будет работать для файлов, хранящихся в apk. – njtman

9

На всякий случай кто-то все еще ищет решение. Теперь Кордова реализует очень простой способ получить текущий каталог приложений (поддерживаются на Android, прошивке и BlackBerry 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

+0

Как @edhubbell, мне также нужно было добавить 'www /'. – mauvm

+1

cordova.file.applicationDirectory возвращает только исключение для меня (undefined) – andreimarinescu

Смежные вопросы