我正在使用此代码使用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="*"/>
为什么这不起作用?
答案 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-transfer
到cordova-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上受支持。 (布尔值)