图像文件下载for ionic for iOS平台的问题

时间:2016-04-18 06:43:54

标签: javascript ios ionic-framework

我正在尝试下载一些图像文件并将其存储为使用Ionic框架的应用程序的离线可访问性目的。我使用了两个名为“ Cordova-plugin-file ”和“ Cordova-plugin-file transfer ”的Cordova插件。我的代码适用于Android,但在iOS平台上面临一个奇怪的问题。

  

成功时出错callbackId:FileTransfer552364304:TypeError:null   不是对象(评估'result.lengthComputable'),   callbackFromNativecordova.js

有时代码有效,有时会抛出这个错误。此外,我无法从我的JavaScript代码中访问错误。有人可以帮忙吗?代码段如下:

downloadImage: function(url, fileName) {
        var deferred = $q.defer();

        window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function(fs) {
                fs.root.getDirectory(
                    LOCAL_STORAGE_KEYS.app, {
                        create: true
                    },
                    function(dirEntry) {
                        // console.log(arguments);
                        dirEntry.getFile(
                            fileName, {
                                create: true,
                                exclusive: false
                            },
                            function(fe) {
                                console.log(arguments);

                                var p = fe.toURL();
                                console.log("In service the url path:", p);
                                fe.remove();
                                var ft = new FileTransfer();
                                console.log('File Transfer instance:',ft);
                                ft.download(
                                    encodeURI(url),
                                    p,
                                    function(entry) {
                                        console.log('In service the entry callback:',entry);
                                        if (entry && entry.toURL) {
                                            deferred.resolve(entry.toURL());
                                        } else {
                                            deferred.resolve();
                                        }
                                    },
                                    function(err) {
                                        console.log('Getting rejected:',err);
                                        deferred.reject(err);
                                    },
                                    false,
                                    null
                                );
                            },
                            function() {
                                deferred.reject(new Error('get file  failed'));
                            }
                        );
                    }
                );
            },
            function() {
                deferred.reject(new Error('get directory failed'));
            });

        return deferred.promise;
    }

0 个答案:

没有答案