Я пытаюсь загрузить изображение, снятое с камеры iOS в ngCordova, в корзину на Amazon S3. У меня нет возможности отлаживать этот код. Я не уверен, что у меня проблема с S3 или моей камерой. Есть ли способ отладить приложение ionic/ngCordova, работающее на устройстве?
.controller('AddMediaCtrl', function($scope, $cordovaCamera) {
//////////////////////////////////////////////////////////
// AMAZON S3 //
////////////////////////////////////////////////////////
$scope.creds = {
bucket: 'bucket_name',
access_key: '*************',
secret_key: '*************'
}
var bucket = new AWS.S3({params: {Bucket: $scope.creds.bucket }});
AWS.config.update({accessKeyId: $scope.creds.access_key, secretAccessKey: $scope.creds.secret_key});
AWS.config.region = 'us-east-1';
var upload = function(file){
results.innerHTML = '';
var params = {Key: file.name, ContentType: file.type, Body: file};
bucket.upload(params, function (err, data) {
console.log(err);
});
}
//////////////////////////////////////////////////////////
// CAMERA //
////////////////////////////////////////////////////////
$scope.images = [];
var image = {}
$scope.addImage = function() {
// 2
var options = {
destinationType : Camera.DestinationType.FILE_URI,
sourceType : Camera.PictureSourceType.CAMERA, // Camera.PictureSourceType.PHOTOLIBRARY
allowEdit : true,
encodingType: Camera.EncodingType.JPEG,
popoverOptions: CameraPopoverOptions,
saveToPhotoAlbum: true
};
// 3
$cordovaCamera.getPicture(options).then(function(imageData) {
// 4
image.data = imageData;
image.type = 'image/jpeg'
onImageSuccess(imageData);
function onImageSuccess(fileURI) {
createFileEntry(fileURI);
}
function createFileEntry(fileURI) {
window.resolveLocalFileSystemURL(fileURI, copyFile, fail);
}
// 5
function copyFile(fileEntry) {
var name = fileEntry.fullPath.substr(fileEntry.fullPath.lastIndexOf('/') + 1);
var newName = makeid() + name;
image.name = newName
window.resolveLocalFileSystemURL(cordova.file.dataDirectory, function(fileSystem2) {
fileEntry.copyTo(
fileSystem2,
newName,
onCopySuccess,
fail
);
},
fail);
//upload to S3
upload(image);
}
// 6
function onCopySuccess(entry) {
$scope.$apply(function () {
$scope.images.push(entry.nativeURL);
});
}
function fail(error) {
console.log("fail: " + error.code);
}
function makeid() {
var text = "";
var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
for (var i=0; i < 5; i++) {
text += possible.charAt(Math.floor(Math.random() * possible.length));
}
return text;
}
}, function(err) {
console.log(err);
});
}
})
adb logcat CordovaLog:D *:S
в CLI. Кроме того, вы можете использовать средство Chrome для удаленной отладки WebView, если у вас есть устройство с Android 4.4+ (Kitkat или выше) — developer.chrome.com/devtools/docs/remote-debugging - person Keval   schedule 13.05.2015