Предположим, что соединение на мобильном телефоне слабое и застревает, как я могу прервать передачу файла в процессе до того, как загрузочный счетчик выкопал отверстие на экране?org.apache.cordova.file-transfer как отменить файл загрузки
док здесь https://github.com/apache/cordova-plugin-file-transfer/blob/master/doc/index.md#abort
Согласно использованию документации метода прерывания() должен это делать, но выглядит никак. И iOS, и Android. Функция загрузки работает. Однако прерывание ничего не делает. В любом случае файл загружается после вызова abort(). Даже через 10 секунд.
у меня есть:
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???
}
Что мне не хватает?
Спасибо, у меня было это чувство. Ну, я думаю, что не будет других передач файлов одновременно. Как вы думаете, что приведение var fileTransfer = new FileTransfer(); прямо перед функцией, будет в безопасности и исправить? Или есть другое лучшее решение? – sasha
@sasha, да, я считаю, что это сработает, но не забывайте удалять 'fileTransfer' из памяти, когда вам это больше не нужно. –
для удаления 'fileTransfer', что лучший способ? 'fileTransfer.destroy()' или 'fileTransfer = []' не может найти четкий ответ. Извините за этот вопрос, но не используется для этого кодирования уровня JS. – sasha