Angularjs из ресурса Асинхронно Загрузить

0

Я загружаю около 10 фотографий за один раз (фотографии до 800kb - 1000kb за фотографию).

Моя проблема в том, что приложение падает примерно через 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');
});
Теги:
ionic-framework

1 ответ

0

Можете ли вы попробовать cordova-plugin-file-transfer. Обратите внимание, что он будет работать только в телефоне.

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

  • 0
    Я использую сервис REST, и $ resource отлично работает с моим сервисом. Также я использовал передачу файлов, но на IOS это работает не так хорошо, как хотелось бы. Моя проблема в том, что все загружено по одному, поэтому мне нужно загрузить их асинхронно.
  • 0
    destinationType: Camera.DestinationType.DATA_URL Загрузка всех изображений в виде dataurl в память займет много памяти и приведет к сбою вашего приложения. Таким образом, единственный способ - сохранить его в памяти телефона и передать их. Для этого вам нужно будет использовать некоторые нативные плагины. Я не могу предложить другого пути. Пожалуйста, проведите небольшое исследование и поделитесь своими выводами, чтобы они могли помочь другим. Спасибо..

Ещё вопросы

Сообщество Overcoder
Наверх
Меню