Как использовать браузеры File API с веб-приложением PhoneGap?

Некоторое время назад я создал веб-приложение на основе PhoneGap.

Поскольку файл типа ввода теперь возможен в iOS 6, я хочу использовать его и собственный API файлов, но продолжаю использовать PhoneGap, чтобы иметь возможность размещать приложение в Appstore.

Кстати: я нашел эту ссылку, но это не работает: каждый раз, когда я Доступ к функциям файла. Я получаю сообщение об ОШИБКЕ от PhoneGap, и он в основном ничего не делает.

Обновление:

На самом деле получение файла (изображения) и его отправка на сервер работают нормально, но перед этим я хочу изменить размер изображения (чтобы уменьшить размер файла) с помощью canvasResize. Когда вызывается функция reader.readAsDataURL(file), я получаю следующую ошибку:

-[CDVJKDictionary pathExtension]: unrecognized selector sent to instance 0x208892b0
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[CDVJKDictionary pathExtension]: unrecognized selector sent to instance 0x208892b0'

Обновление 2:

Вот соответствующий код, который я использую:

var reader = new FileReader();
var fileInput = document.getElementById('ideaCommitFileInput');
var file = fileInput.files[0];
reader.readAsDataURL(file);

person Chagemei    schedule 11.01.2013    source источник


Ответы (1)


Если вы собираетесь развернуть приложение PhoneGap как на iOS, так и на Android, я бы посоветовал использовать обычное поле ввода файла для устройств iOS 6 и navigation.camera для Android и более ранних версий устройств iOS, если вы имеете дело с загрузкой изображений.

Пока ваше приложение обладает достаточной «собственной функциональностью», я сомневаюсь, что обзор приложений Apple будет возражать против того, что вы использовали HTML5 File API.

Вот хороший пример использования File API для извлечения строки изображения в кодировке Base64: изображение base64.

Надеюсь это поможет.

person Zorayr    schedule 11.01.2013
comment
Спасибо за Ваш ответ! Собственно, именно так я и пытался поступить. Но метод reader.readAsDataURL(file) (где читатель является FileReader) создает следующую ошибку: -[CDVJKDictionary pathExtension]: нераспознанный селектор отправлен экземпляру 0x208892b0 *** Завершение работы приложения из-за необработанного исключения 'NSInvalidArgumentException', причина: '- [CDVJKDictionary pathExtension]: нераспознанный селектор отправлен экземпляру 0x208892b0'. Я предполагаю, что эта ошибка связана с тем, что мой файловый объект является одним из собственных входных данных HTML5, но используемый FileReader ожидает файловый объект от PhoneGap. (см. код выше) - person Chagemei; 14.01.2013