Ionic - Cordova - $ cordovaFileTransfer冻结 - 慢 - 阻止标签

时间:2015-07-23 16:34:52

标签: javascript angularjs cordova ionic-framework ngcordova

我正在使用ngCordova的cordova文件传输插件(更新到上一版本)来下载文件。我在android lolipop(lg g3)上运行应用程序

我一直在搜索我的代码和谷歌,但没有成功。

下载工作正常,但问题是进度功能变慢了。 为了更好地解释自己:在进度停止运行之前执行成功回调。

另外,我正在使用离子选项卡模板,在下载完成之前,它不会加载另一个选项卡(即使只有文本)。

我不确定,但我想$ timeout()应该在后台执行,看起来不是我的情况。这是我的代码,希望你能帮助我!

angular.module('starter.controllers', ['angular-svg-round-progress', 'ngCordova'])

.controller('SearchCtrl', function($scope, $http, $ionicLoading, $rootScope,$timeout, $cordovaFileTransfer, $ionicPlatform) {

    $scope.download = function(id) {
        $scope.hideDownload[id] = 1;
        $ionicPlatform.ready(function() {
            var url = "http://cdn.wall-pix.net/albums/art-space/00030109.jpg"
            console.log('path: ' + cordova.file.applicationStorageDirectory);
            var targetPath = cordova.file.applicationStorageDirectory + "testImage.png";
            var trustHosts = true
            var options = {};

            $cordovaFileTransfer.download(url, targetPath, options, trustHosts)
                .then(function(result) {
                    console.log('done');
                    console.log(result);
                }, function(err) {
                    console.log('error');
                    console.log(err);
                }, function (progress) { 
                    $timeout(function () {
                        $scope.progress[id] = (progress.loaded / progress.total) * 100;
                        console.log(progress.loaded + ' / ' + progress.total);
                    })
                });
        });
    }

})

PS:$ scope.progress [id]只更新一些文本

PS2:如果进度功能为空,那么我没有冻结,文件仍然可以很好地下载。但是如果我设置一个空的$ timeout()函数,那么它就会冻结。当然,在不使用$ timeout的情况下更新$ scope.progress [id]也会冻结。

0 个答案:

没有答案