org.apache.cordova.file-transfer如何中止下载文件
假设移动设备上的连接很弱并且卡住,在加载微调器在屏幕上挖洞之前,如何中断正在进行的文件传输 这里是医生 根据文档,使用abort()方法应该可以做到这一点,但看起来不可能。iOS和Android都有。下载功能有效。然而,中止不起任何作用。无论如何,文件是在abort()调用之后下载的。即使在10秒之后 我有:org.apache.cordova.file-transfer如何中止下载文件,cordova,file-transfer,cordova-3,Cordova,File Transfer,Cordova 3,假设移动设备上的连接很弱并且卡住,在加载微调器在屏幕上挖洞之前,如何中断正在进行的文件传输 这里是医生 根据文档,使用abort()方法应该可以做到这一点,但看起来不可能。iOS和Android都有。下载功能有效。然而,中止不起任何作用。无论如何,文件是在abort()调用之后下载的。即使在10秒之后 我有: function downloadMyFilePlease () { var fileTransfer = new FileTransfer(); var uri = encodeURI
function downloadMyFilePlease () {
var fileTransfer = new FileTransfer();
var uri = encodeURI("http://some.server.com/download.php");
fileTransfer.onprogress = function(progressEvent) {
//...
};
fileTransfer.download(
uri,
fileURL,
function(entry) {
console.log("download complete: " + entry.toURL());
},
function(error) {
console.log("download error source " + error.source);
console.log("download error target " + error.target);
console.log("upload error code" + error.code);
},
false,
{
headers: {
"Authorization": "Basic dGVzdHVzZXJuYW1lOnRlc3RwYXNzd29yZA=="
}
}
);
}
function abortFileTrasfer () { // called on Abort button click
fileTransfer.abort(); // <------ Why are you not working???
}
函数下载MyFilePlease(){
var fileTransfer=new fileTransfer();
var uri=encodeURI(“http://some.server.com/download.php");
fileTransfer.onprogress=函数(progressEvent){
//...
};
fileTransfer.download(
乌里,
文件URL,
功能(条目){
log(“下载完成:+entry.toURL());
},
函数(错误){
log(“下载错误源”+错误源);
log(“下载错误目标”+错误目标);
console.log(“上传错误代码”+错误代码);
},
假,,
{
标题:{
“授权”:“基本dGVzdHVzZXJuYW1lOnRlc3RwYXNzd29yZA=”
}
}
);
}
函数abortFileTrasfer(){//在单击Abort按钮时调用
fileTransfer.abort();//变量fileTransfer未在AbortFileTransfer()
函数中定义,它是downloadMyFilePlease()
中的局部变量,因此无法在AbortFileTransfer()中访问它
谢谢,我有这种感觉。好吧,我想不会有其他文件传输同时进行。那么您认为带来var fileTransfer=new fileTransfer()吗;就在函数之前,将是安全的并修复它?或者有另一个更好的解决方案?@sasha,是的,我相信它会工作,但不要忘记在不再需要时从内存中删除fileTransfer
。要删除fileTransfer
最好的方法是什么?fileTransfer.destroy()
或fileTransfer=[]
找不到明确的答案。很抱歉这个问题,但不习惯这种JS级别的编码。我相信您只需要执行fileTransfer=null;
。这样您将删除指向资源的链接=>将不会有变量链接到此资源,然后垃圾收集器将其从内存中删除。