Как получить идентификатор загрузки загруженного файла? - PullRequest
0 голосов
/ 30 октября 2019

Я хочу иметь возможность использовать расширение для загрузки файла и запомнить идентификатор загрузки для дальнейшего использования. Моя первоначальная попытка сделать это состояла в том, чтобы использовать функцию обратного вызова и назначить downloadId как переменную, подобную этой:

chrome.downloads.download({
    url: downloadURL
},
    function getDownloadId(downloadId) {
        var thisDownloadId = downloadId;
    }
);

Но это вызвало сбой моего Chromebook, поэтому я не думаю, что это сработает.

Я пытался использовать решение из этого вопроса . Однако, когда я пытаюсь использовать упомянутое решение, оно заканчивается этой ошибкой:

TypeError: Cannot read property 'current' of undefined.

Это фрагмент моего скрипта, который загружает файл (popup.js)

chrome.downloads.download({
    url: downloadURL
});

И фрагмент, где он ожидает загрузки файла, который в настоящее время отображает только идентификатор загрузки для тестирования (popup.js)

chrome.downloads.onChanged.addListener(function (
    if(detail.state.current == "complete") { // This is where the error occurs
        var downloadId = detail.id;

        alert("downloadId: " + downloadId);
    }
});

1 Ответ

0 голосов
/ 31 октября 2019

Переменная downloadId уничтожалась из-за того, что она была в функции обратного вызова. Мне нужно было использовать API chrome.storage, чтобы получить его.

Функция загрузки (измененная)

chrome.downloads.download({
    url: downloadURL
},
    function(downloadId) {
        chrome.storage.local.set({'downloadId': downloadId}, function() {
            console.log("Store Download ID.");
            chrome.storage.local.set({'downloadId': downloadId});
        })
    }
);

Функция оповещения downloadId:

chrome.storage.local.get(['downloadId'], function(result) {
    var downloadId = result.downloadId;
    alert(downloadId);
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...