2014-12-04 4 views
1

Я могу использовать плагин камеры от cordova-plugin-camera, чтобы делать снимки с моего мобильного устройства, но у меня проблема с параметрами камеры.Cordova Объект камеры пуст

Я попытался следующим в моем контроллере, чтобы увидеть, какие ключи объекта камеры был:

$ionicPlatform.ready(function() { 
    for (var key in Camera) { 
     alert(key); 
    } 
}); 

И он просто возвращает метод getPicture(). Другие ключи, такие как «EncodingType» или «MediaType», отсутствуют. Я пошел и бросил журналы в Camera.js в библиотеке камеры, когда он заполняет объект cameraExport, и все заполняется должным образом (EncodingType и т. Д. Все доступны). Он просто недоступен, когда он достигает моего контроллера.

Когда я пытаюсь ссылаться на Camera.EncodingType.JPEG - я получаю «Не могу прочитать свойство JPEG неопределенного».

Я попытался удалить плагин и переустановить его с помощью git url, а также попробовал метод org.apache.cordova.camera (после деинсталляции). Я обновил ионную библиотеку. Создал новые проекты в надежде, что это просто ошибка конфигурации.

Вот пример контроллера я бросил вместе, что имеет вопрос, а также:

.controller('PhotoCtrl', function($scope, $state, $ionicPlatform, Camera) { 
    $ionicPlatform.ready(function() { 
     alert(JSON.stringify(Camera)); // This just shows empty brackets: {} 
    }); 

    $scope.getPhoto = function() { 
     try { 
      // Errors with this alert - if I take it out, it will allow me to take a picture 
      alert(Camera.EncodingType.JPEG); 
      Camera.getPicture().then(function(photoUri) { 
       alert(photoUri); 
      }, function(err) { 
       console.err(err); 
      }, 
      { 
       // Again, if I remove the Camera.EncodingType.JPEG, it will save the picture 
       encodingType: Camera.EncodingType.JPEG, 
       // These don't work either. Almost like the options aren't being applied. 
       correctOrientation: true, 
       saveToPhotoAlbum: true 
      }); 
     } 
     catch(err) { 
      // Throws the "Cannot read property JPEG of undefined." 
      alert(err); 
     } 
    }; 
}) 

Любые идеи?

Пожалуйста, дайте мне знать, если я могу предоставить дополнительную информацию.

Заранее благодарен!

ответ

1

Оказывается, объект моей камеры был объектом, изготовленным на заводе. Я просто забыл добавить константы из navigator.camera.

Doh!

.factory('Camera', ['$q', function($q) { 
    return { 
     getPicture: function(options) { 
      var q = $q.defer(); 
      navigator.camera.getPicture(function(result) { 
       // Do any magic you need 
       q.resolve(result); 
      }, function(err) { 
       q.reject(err); 
      }, options); 
      return q.promise; 
     }, 
     // Forgot the following 
     EncodingType: navigator.camera.EncodingType, 
     DestinationType: navigator.camera.DestinationType, 
     MediaType: navigator.camera.MediaType, 
     PictureSourceType: navigator.camera.PictureSourceType, 
     PopoverArrowDirection: navigator.camera.PopoverArrowDirection, 
     Direction: navigator.camera.Direction 
    } 
}])