Cordova FileTransfer下载错误

时间:2014-06-09 16:07:20

标签: android cordova download file-transfer hybrid-mobile-app

我有一个简单的混合应用程序,应该使用cordova 2.3.0下载文件。来自文档:

var filePath = someFullPath; //e.g. "file:///mnt/sdcard/myfile.pdf"
var uri = encodeURI("http://someurl.com/myfile.pdf");

var fileTransfer = new FileTransfer();

fileTransfer.download(
            uri,
            filePath,
            function(entry) {
                console.error("download complete: " + entry.fullPath);
            },
            function(error) {
                console.error("download error source " + error.source);
                console.error("download error target " + error.target);
                console.error("donwload error code " + error.code);
                console.error("http: "+error.http_status);

            }
    );
}

结果是错误3,Connection_Err,http_status 401,资源myfile.pdf在http服务器上公开,不需要auth。

我尝试使用getFile创建文件文件://mnt/sdcard/myfile.pdf("我的文件.pdf",{create:true,exclusive:false},成功,失败) ;或者只是将字符串设置为现有目录。它在两种情况下都不起作用。

你能告诉我吗?我必须使用cordova 2.3.0。

更新

我认为我的问题非常接近这个问题:FileTransfer in Phonegap code 401

我有Android API 17,cordova 2.3.0,我需要设置allow origin =" *",但我无法创建config.xml文件,由于某些原因它会抛出错误。你遇到过这个问题吗?

我在res里面创建了文件夹xml(没有一个),并在这样的文件夹中创建了一个文件config.xml。 config.xml的内容是

 <access origin="*"></access>

当我运行应用程序时,我收到一条警告,显示此错误:错误初始化Cordova:未找到类

2 个答案:

答案 0 :(得分:1)

所有代码都是正确的,我的框架配置存在问题:

这个项目有另一个项目作为图书馆依赖。此项目没有config.xml文件将URL列入白名单。图书馆项目了!我只需要添加

<access origin="http://*.somedomain.com"></access> 

到“右”的config.xml cordova文件,该文件位于Library项目中,而不是主项目本身。

答案 1 :(得分:0)

在我的设置中,访问权限还不够。 我在我的应用中添加了插件cordova-plugin-whitelist。 然后它工作正常。