0

我正在使用 Cordova/Phonegap 编写一个小程序,它基本上从服务器下载文件并放在本地 sd 卡中。这个应用程序目前只能在 Android 上运行。我有这个函数,它使用来自科尔多瓦库的文件传输,它从服务器下载所需的文件。

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 的默认下载管理器而不是这种方法。或者我能否以某种方式显示下载进度,它也会解决问题。

谢谢!

4

2 回答 2

0

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

于 2013-09-27T13:20:48.827 回答
0

使用此插件访问 android DownloadManager

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

我在我的科尔多瓦应用程序中使用它,它工作正常。

于 2015-02-12T00:03:02.453 回答