2015-01-23 5 views
1

Я читал каждый вопрос и здесь, и в 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); 

, который печатает массив, о котором я упоминал ранее, и ничего не делает.

ответ

0

, не видя всего вашего кода, я предполагаю, что использование this. и self. вызывает проблему. Попробуйте что-нибудь вроде этого:

function getPicture() { 
    navigator.camera.getPicture(onBackSuccess, onFail, { 
     quality: 20, 
     destinationType: Camera.DestinationType.FILE_URI 
    }); 
}; 

function onBackSuccess() { 
    //some code 
} 

function onFail() { 
    //some code 
} 
+0

Неужели это еще не вызовет камеру, но просто не сработает, когда она дойдет до обратных вызовов? Кроме того, я попытался определить обратные вызовы inline, а также безрезультатно. – user3537769

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