在phonegap android中下载链接的问题

时间:2012-03-01 20:41:59

标签: cordova

我正在尝试在服务器上下载动态生成的文件。 使用phonegapbuild 1.4.1尝试一个简单的应用程序。

首先,我尝试了直接链接到返回文件的服务器页面 通过http“内容类型”和“内容 - 配置:附件; filename =“headers。此下载链接在常规浏览器中正常工作。 但是当在phonegap应用程序中单击此链接似乎不起作用时(至少在android 2.3.3中),当单击链接时,会调用服务器,但是 没有任何反应。

然后我发现了一个名为的phonegap api函数 FileTranfer.download。我不知道如何指定文件路径,如何 我可以知道默认下载位置(跨平台)吗? 我已经尝试过fileSystem.resolveFileSystemURI函数,但没有 发生(没有成功或失败事件),我也尝试了以下 句子fileSystem.root.getDirectory(“download”,{create:true}); 它挂在那里,下一行是一个警报永远不会被执行。

任何人都可以帮助我,并指出一个可靠的下载方式 附件(最好是通过服务器的直接链接)

2 个答案:

答案 0 :(得分:1)

如果问题只在于android,那么这可能对你有所帮助,我在Android中试过它,希望这也适用于IOS。

enter code here
 function fun(){
var dfd = $.Deferred(function (dfd){
var remoteFile = "Your link";
var localFileName = remoteFile.substring(remoteFile.lastIndexOf('/')+1);
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function(fileSystem) {
fileSystem.root.getFile(localFileName, {create: true, exclusive: false},
    function(fileEntry) {
var localPath = fileEntry.fullPath;
if (device.platform === "Android" && localPath.indexOf("file://") === 0) {
            localPath = localPath.substring(7);
        }

    var ft = new FileTransfer();
    ft.download(remoteFile, localPath, function(entry) {
    dfd.resolve('file downloaded');
     // Do what you want with successful file downloaded and then
    // call the method again to get the next file
    //downloadFile();
            }, fail);
             }, fail);
            }, fail);

           });
            return dfd.promise();

        }
                fun().then(function(msg){
            if(msg==="file downloaded")
            {
            alert("Download complete");
            }
            else
            {
            alert("Download error")
            }
            });
            function fail(){
            alert("error");
        }

答案 1 :(得分:0)

正在寻找一条完整的道路。所以像" /sdcard/download.txt"会工作。