2014-12-04 53 views
1

我可以使用cordova-plugin-camera的相機插件從我的移動設備上拍照,但是在指定相機選項時出現問題。Cordova Camera object empty

我想在我的控制器下面看到攝像頭的對象有哪些鍵:

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

它只是返回Getpicture中()方法。其他鍵如'EncodingType'或'MediaType'缺失。當它填充cameraExport對象並且所有內容都正確填充(EncodingType等全部可用)時,我去攝像頭庫中的Camera.js中投射日誌。它到達我的控制器時不可用。

當我嘗試引用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

原來我的Camera對象是一個工廠製造的對象。我只是忘了從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 
    } 
}]) 
相關問題