0
一度に約10枚の写真をアップロードしています(1枚あたり800kb〜1000kbの範囲の写真)。angularjs ng-resource非同期アップロード
私の問題は、アプリが約5秒後にクラッシュすることです。
写真を非同期でアップロードしたり、アプリのパフォーマンスを向上させるにはどうすればよいですか?
コントローラ
appcon.controller('myCtrl', function($scope, $state, $cordovaCamera, $ionicPopup, PostImg){
$scope.postData = [];
var truckid = "%" + window.localStorage['truckid'] + "%";
$scope.start = function() {
document.addEventListener("deviceready", function() {
var options = {
quality: 200,
destinationType: Camera.DestinationType.DATA_URL,
sourceType: Camera.PictureSourceType.CAMERA,
allowEdit: true,
encodingType: Camera.EncodingType.JPEG,
targetWidth: 1000,
targetHeight: 1000,
popoverOptions: CameraPopoverOptions,
saveToPhotoAlbum: false,
correctOrientation:true
};
$cordovaCamera.getPicture(options).then(function(imageData) {
var file = imageData;
$scope.postData.push({file});
}, function(err) {
console.log('4 error');
});
}, false);
}
$scope.upload = function() {
var confirmPopup = $ionicPopup.confirm({
title: 'Continue?',
template: 'Are you sure you want to Send Images?'
});
confirmPopup.then(function(res) {
if(res) {
$scope.postData.push({truckid});
var post = new PostImg($scope.postData);
post.$save(function(postObject) {
var alertPopup = $ionicPopup.alert({
title: 'Images Send !',
buttons: [{
text: 'Continue with Check In?',
type: 'button-positive'
}]
});
alertPopup.then(function(res) {
});
});
}
else {
console.log('You are not sure');
}
});
}
})
工場
appcon.factory('PostImg', function($resource) {
return $resource('http://192.168.0.1/Service.svc/BOB');
});
私は、RESTサービスを使用していますし、$リソースが私のサービスと素晴らしい取り組んでいます。また、私はファイル転送を使用しましたが、私もそれが好きであるようにIOS上でもうまくいきません。私の問題は、すべてが1つにアップロードされるので、非同期にアップロードする必要があるということです。 –
destinationType:Camera.DestinationType.DATA_URL すべての画像をdataurlとしてメモリに読み込むと、メモリが大量に消費され、アプリケーションがクラッシュする可能性があります。だから唯一の方法は、携帯電話のストレージに保存し、それらを転送することです。そのためには、ネイティブプラグインを使用する必要があります。私は他の方法を示唆することはできません。研究をして、他の人を助けることができるように、あなたの調査結果を共有してください。ありがとう.. –