Как загрузить картинку из мобильного приложения PhoneGap с помощью AJAX? - PullRequest
3 голосов
/ 01 августа 2011

У меня есть мобильное приложение PhoneGap, и я использую Camera API для захвата изображения с помощью этого кода:

navigator.camera.getPicture(function(data){
  $.post('http://www.example.com', {data:data});
}, function(msg){alert(msg);}, { quality: 20 });

Это было бы нормально, но необходимо установить для параметра качества какое-то разумное значение в зависимости от используемого мобильного устройства. Некоторые могут обрабатывать значения выше 70, но у младших устройств возникают проблемы даже со значением 20. В документации Phonegap упоминается об этой проблеме, поскольку они вызваны необходимостью памяти, так как все изображение хранится в строке Base64. PhoneGap предлагает скорее указать опцию destinationType: Camera.DestinationType.FILE_URI

Но, насколько я понимаю, я получу локальный путь к файлу сохраненного изображения, который мне нужно будет прочитать в одну переменную, используя FileReader API. И затем $.post это снова так же, как я делаю сейчас.

Мне кажется, что если бы я изменил destinationType с Base64 на FILE_URI, я бы ничего не получил, и у меня все еще были бы те же проблемы с памятью при чтении его из локального файла в переменную и при его POSTing.

Правильно ли я думаю? Или я что-то упустил, и было бы какое-то преимущество использования FILE_URI destionationType? Или есть ли лучший способ загрузить снятый снимок?

1 Ответ

4 голосов
/ 07 августа 2011

ОК, так что новая документация PhoneGap 1.0.0 ответит на этот вопрос. Его можно найти по адресу: http://docs.phonegap.com/phonegap_file_file.md.html#FileTransfer

...