Я разрабатываю приложение cordova (cli-5.2.0), в котором сделаны снимки с помощью плагина камеры cordova (cordova-plugin-camera, версия 1.2.0) ,Кордоба: camera.getPicture не работает с «Камера отменена»
var camera = navigator.camera;
var cameraOptions = {
destinationType: Camera.DestinationType.DATA_URL
};
camera.getPicture(function(result) {
alert('success');
}, function(error) {
alert('fail ' + error);
}, cameraOptions);
Этот код работает отлично .. ..most времени.
На конкретном медленном устройстве Android 4.4.4 это работает отлично, как 9 из 10 раз.
Как 1 из 10, вызов не отвечает, говоря «Камера отменена» (хотя она не была отменена с помощью кнопки «Назад» или что-то в этом роде).
В этом случае срабатывает обратный вызов отказа «Камера отменен», и сразу после этого пользовательский интерфейс камеры показывается.
(если снимок сделан тогда, обратный вызов успеха не вызывается).
Трудно сказать, когда это произойдет, но похоже, что это происходит чаще, если устройство является более занятым.
Файлы журнала не показывают гораздо больше деталей, за такие вещи, как, кроме:
Попытался послать вторую функцию обратного вызова для ID: Camera1337050609
Однако эти журналы также записывается, если вызов успешен ,
Любые советы и подсказки очень ценятся.
Спасибо за ваше время,
Коэн
обновление 1 (ответ на комментарий)
ProjectDetailCtrl.prototype.takePhoto = function() {
var _this = this;
// this cameraService calls the code from above
return this.cameraService.getPicture()
.then(function (imageData) {
_this.$log.debug('got camera data');
// ..
},
<!-- This is an angular application, the click handling goes like: -->
<md-button ng-click="vm.takePhoto()">
Add photo
</md-button>
Это может быть проблема с памятью устройства. – Joerg