Not sure what I’m doing wrong (tried following a bunch of tutorials online as well)…I’ve also tried interchanging FILE_URL and DATA_URL but still doesn’t work. It takes a picture but doesn’t save to parse. Getting a “base64 field cannot be decoded” error
.controller('CameraCtrl', function ($scope, $state, $http, $cordovaCamera, $ionicPopover){
var cameraPopover = '<ion-popover-view style="width: 220px; height:165px; opacity: 1; left:50%; top:63%;"><ion-content><div class="list"><a class="item" ng-click="takePicture()" align="center" target="_blank"> Take Picture</a><a class="item" ng-click="selectPicture()" align="center" target="_blank"> Select From Camera Roll</a><a class="item" ng-click="closePopover()" align="center" target="_blank"> Close </a></div></ion-content></ion-popover-view>';
$scope.popover = $ionicPopover.fromTemplate(cameraPopover, {
scope: $scope
});
$scope.$on('$ionicView.enter', function(){
$scope.popover.show();
$scope.popover.backdropClickToClose = false;
console.log
});
$scope.closePopover = function() {
$scope.popover.hide();
$state.go('tab.profile');
};
var ImageObject = Parse.Object.extend("Gallery");
$scope.takePicture = function(){
var options = {
quality: 75,
destinationType: Camera.DestinationType.FILE_URL,
sourceType: Camera.PictureSourceType.CAMERA
};
$cordovaCamera.getPicture(options).then(
function(imageData){
$scope.photoTaken = imageData;
},
function(error){
console.log(error);
})
$scope.popover.hide();
}
$scope.selectPicture = function(){
$scope.popover.hide();
}
$scope.submitPicture = function(){
var imageFile = new Parse.File("mypic.jpg", { base64: $scope.photoTaken });
imageFile.save().then(function () {
// create object to hold caption and file reference
var imageObject = new ImageObject();
// set object properties
imageObject.set("title", pictureData.title);
imageObject.set("img", imageFile);
imageObject.set("user", Parse.User.current());
// save object to parse backend
imageObject.save();
}, function (error) {
console.log('Error');
console.log(error);
});
}
})