【发布时间】:2014-12-23 22:22:12
【问题描述】:
令人恼火.. 几天前,我无法让 Cordova 文件传输插件与 PhoneGap 3.6.3 一起使用。现在看来,在我重写了 index.js 之后,“未定义”错误的问题已经解决了。这是老问题:PhoneGap Build: Plugins not working (getting "undefined" errors) on Android
现在我遇到了一个新问题:Android 上的下载总是失败并显示以下消息:
文件传输错误
正文:空
代码:3
例外:空
http_status: 401
来源:“http://www.hs-bremerhaven.de/fileadmin/images/logo.png”
目标:“file:///data/data/de.testapp1374839/files/logo.png”
原型:对象
我已经尝试将这些功能标签添加到 config.xml 文件中:
<feature name="http://api.phonegap.com/1.0/file"/>
<feature name="http://api.phonegap.com/1.0/network"/>
我提供了一个通配符来访问外部资源。
<access origin="*"/>
这是我更新后的 index.js:
var DR = {
initialize: function(){
this.bindEvents();
},
bindEvents: function() {
document.addEventListener('deviceready', this.onDeviceReady, false);
document.getElementById('download').addEventListener('click', this.downloadFile, false);
},
onDeviceReady: function(){
},
downloadFile: function(){
console.log("Downloading...");
var $status = document.querySelector("#fileStatus");;
var assetURL = encodeURI("http://www.hs-bremerhaven.de/fileadmin/images/logo.png");
var fileName = "logo.png";
var DEV_PATH = cordova.file.dataDirectory;
var fullPath = DEV_PATH + fileName;
console.log("DEV_PATH " + DEV_PATH);
$status.innerHTML = "Checking for file";
window.resolveLocalFileSystemURL(fullPath, onFilePresent, downloadAsset);
function onFilePresent(){
console.log("File already there");
}
function downloadAsset() {
var fileTransfer = new FileTransfer();
console.log("Downloading: " + assetURL + " to " + fullPath);
fileTransfer.download(assetURL, fullPath,
function(entry) {
console.log("Success!");
onFilePresent();
},
function(err) {
console.log("Error");
$status.innerHTML = "Fehler.";
console.dir(err);
});
}
},
checkFile: function(){
//todo
}
};
任何帮助将不胜感激。
【问题讨论】:
-
401错误是未经授权的,所以,也许你的服务器不允许下载文件
-
@jcesarmobile:我不认为是这样,因为你可以直接用浏览器下载它。
-
这个问题有解决方案吗?我有完全相同的问题。
标签: cordova phonegap-plugins phonegap-build cordova-plugins