白名单FileTransfer问题

时间:2015-03-10 10:28:12

标签: android cordova

我正在使用此代码使用FileTransfer插件将文件下载到Android设备

function filetransfer(download_link, fp) {
    alert(fp);
    var fileTransfer = new FileTransfer();
    // File download function with URL and local path
    fileTransfer.download(download_link, fp,
    function (entry) {
        alert("download complete: " + entry.fullPath);
    },
    function (error) {
    //Download abort errors or download failed errors
        alert("download error source " + error.source);
    //alert("download error target " + error.target);
    //alert("upload error code" + error.code);
    }
   );
}

转移失败。我检查了我的配置,该配置设置为从所有域接受。我有项目&gt; res&gt; xml&gt;带有<access origin="*"/>

的config.xml

为什么这不起作用?

2 个答案:

答案 0 :(得分:2)

如果您使用的是cordova-android 4.0版,我将需要whitelist plugin。随着cordova cli的5.0版本发布,核心插件更新有一些重大变化。

Cordova Blog: Moving Plugins to NPM

  

我们最近发布了cordova-plugin-whitelist和   科尔多瓦 - 插件遗留白名单。我们已经改进了白名单的方式   从cordova-android@4.0.0开始工作。通过此更改,设置一个   现在支持内容安全策略(CSP)。网络请求是   默认情况下阻止没有cordova-plugin-whitelist,所以安装它   插件甚至允许所有请求,即使您使用的是CSP。

此外,请注意插件移动到npm(例如org.apache.cordova.file-transfercordova-plugin-file-transfer)时插件ID的更改,这可能会在您升级时绊倒。

答案 1 :(得分:0)

trustAllHosts参数传递true。

function filetransfer(download_link, fp) {
    var fileTransfer = new FileTransfer();

    fileTransfer.download(
        download_link, 
        fp,
        function (entry) {
            alert("download complete: " + entry.fullPath);
        },
        function (error) {
            alert("download error source " + error.source);
        }, 
        true //trust all hosts (defaults to false)
   );
}
  

trustAllHosts:可选参数,默认为false。如果设置为true,   它接受所有安全证书。这对Android很有用   拒绝自签名安全证书。不推荐用于   生产用途。在Android和iOS上受支持。 (布尔值)

来源:File-Transfer Plugin