2016-08-18 12 views
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'); 
}); 

答えて

0

あなたはコルドバ・プラグイン・ファイル転送を試みることができます。それは電話でのみ動作することに注意してください。

http://ngcordova.com/docs/plugins/fileTransfer/

+0

私は、RESTサービスを使用していますし、$リソースが私のサービスと素晴らしい取り組んでいます。また、私はファイル転送を使用しましたが、私もそれが好きであるようにIOS上でもうまくいきません。私の問題は、すべてが1つにアップロードされるので、非同期にアップロードする必要があるということです。 –

+0

destinationType:Camera.DestinationType.DATA_URL すべての画像をdataurlとしてメモリに読み込むと、メモリが大量に消費され、アプリケーションがクラッシュする可能性があります。だから唯一の方法は、携帯電話のストレージに保存し、それらを転送することです。そのためには、ネイティブプラグインを使用する必要があります。私は他の方法を示唆することはできません。研究をして、他の人を助けることができるように、あなたの調査結果を共有してください。ありがとう.. –

関連する問題