Я читал каждый вопрос и здесь, и в Google, и не мог, чтобы жизнь меня показала это. Я просто пытаюсь использовать Phonegap, чтобы сделать снимок и сохранить URI. Я пытаюсь использовать этот пример из документов here. Вот фрагмент, где я пытаюсь открыть камеру.Phonegap - Невозможно получить камеру вообще.
this.getPicture = function() {
navigator.camera.getPicture(self.onBackSuccess, self.onFail, {
quality: 20,
destinationType: Camera.DestinationType.FILE_URI
});
};
То, что я уже проверил/проверено
- сам PhoneGap/Кордова установлен и работает нормально. Я могу создать приложение без проблем.
navigator.camera
выше определенно определен. Я могу следить за кодом и вызывать функцию getPicture, но это не подтягивает камеру, будь то на устройстве, эмуляторе ADB или эмуляторе браузера Ripple.- Ни мой успех, ни мой обратный вызов ошибки не вызываются. Однако, когда я смотрю на эти переменные в функции getPicture, я могу увидеть соответствующую функцию, хранящуюся в этих переменных.
- Я установил плагин камеры Phonegap. Когда я запускаю
phonegap local plugin list
, один из результатов:org.apache.cordova.camera 0.3.4 "Camera"
- В файле config.xml содержатся как строки
<feature name="http://api.phonegap.com/1.0/camera"/>
, так и<gap:plugin name="org.apache.cordova.camera" />
. Не уверен, что это актуально, поскольку плагин уже установлен. - В файле AndroidManifest.xml содержатся строки
<uses-permission android:name="android.permission.CAMERA" />
,<uses-feature android:name="android.hardware.camera" />
и<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
.
Когда я нажимаю на кнопке, которая вызывает эту функцию, она выводит следующее:
[20,1,1,-1,-1,0,0,false,false,false,null,0]
, который является массивом cameraOptions, который получает сгенерированный /, используемый функцию camera.getPicture.
Все, что мне удалось найти, просто само собой разумеется, поскольку вызов navigator.camera.getPicture(success, failure, options);
собирается открыть камеру, поэтому, похоже, не так много информации о решении моей конкретной проблемы. Любые указатели здесь будут высоко оценены.
Edit: Я вижу ошибку в консоли, которая выглядит как это может быть связано:
Could not find cordova.js script tag. Plugin loading may fail.
Edit: Я не думаю, что моя последняя правка актуальна. Это связано с загрузкой самих файлов плагинов, и я могу увидеть файл Camera.js в папке плагинов при загрузке моего приложения. Я могу поставить точку останова в функции cameraExport.getPhoto, и она туда заходит. Затем он называет
exec(successCallback, errorCallback, "Camera", "takePicture", args);
, который печатает массив, о котором я упоминал ранее, и ничего не делает.
Неужели это еще не вызовет камеру, но просто не сработает, когда она дойдет до обратных вызовов? Кроме того, я попытался определить обратные вызовы inline, а также безрезультатно. – user3537769