使用android下载管理器phonegap 3.0

时间:2013-09-27 10:40:12

标签: cordova

我正在使用Cordova / Phonegap编写一个小程序,它基本上从服务器下载文件并放在本地SD卡中。这个应用程序现在只能在Android上运行。我有这个函数,它使用来自cordova库的fileTransfer,它从服务器下载所需的文件。

this.downloadFile=function(){
        var filePath = '';
        var remoteFile = config.url + 'api_download';
        var localFileName = this.constants.currentFileName;
        window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function(fileSystem) {
            fileSystem.root.getFile(localFileName, {create: true, exclusive: false}, function(fileEntry) {
                var localPath = fileEntry.fullPath;
                var fullPath =  fileEntry.fullPath
                var metadata = fileEntry.getMetadata();
                if (device.platform === "Android" && localPath.indexOf("file://") === 0) {
                    localPath = localPath.substring(7);
                }                 
                filePath = localPath;
                var ft = new FileTransfer();
                ft.download(remoteFile,
                    localPath, function(entry) {
                        // Now file is downloaded, we need the mimetype
                        var type = returnMimeType(fullPath);
                        if(type != ''){
                            CDV.WEBINTENT.startActivity({
                                    action: CDV.WEBINTENT.ACTION_VIEW,
                                    url: fullPath,
                                    type: type},
                                function() {},
                                function() {console.log('Failed to open URL via Android Intent');}
                            );
                            console.log("Local Path is :"); console.log(fullPath);
                        }
                    }, fail);
            }, fail);
        }, fail);
    }

这很好并且完全按预期工作,但用户不知道文件是否正在下载。我没办法通知这个,所以我想知道我是否可以使用Android的默认下载管理器而不是这个方法。或者我可以以某种方式显示下载的进度,它也将解决问题。

谢谢!

2 个答案:

答案 0 :(得分:0)

我在下载xml文件时遇到了同样的问题。解决了这个简单的脚本:Spin.js下载开始时,模糊屏幕并启动微调器,在结束时停止微调器:)

答案 1 :(得分:0)

使用此插件访问android DownloadManager

https://github.com/sgrebnov/cordova-plugin-background-download

我在我的cordova应用程序中使用它并且工作正常。