Napisałem wtyczkę Cordova, aby pobrać plik i zapisać go w folderze danych. Wszystko działa dobrze, z wyjątkiem wartości zwracanej. Chciałbym wyświetlić pasek postępu i potrzebuję uzyskać bieżący postęp. Tutaj jest odpowiednia część mojego kodu:Wyjście opóźnione z Cordova Plugin
while ((readed = is.read(buffer)) > 0) {
fos.write(buffer, 0, readed);
totalReaded += readed;
int newProgress = (int) (totalReaded*100/fileSize);
if (newProgress != progress) {
progress = newProgress;
PluginResult res = new PluginResult(PluginResult.Status.OK, progress);
res.setKeepCallback(true);
callbackContext.sendPluginResult(res);
}
}
My JavaScript:
downloader.prototype.writeFile = function (downloaderSuccess, downloaderFailure, options) {
cordova.exec(downloaderSuccess, downloaderFailure, "downloader", "writeFile", options);
};
function downloaderSuccess(progress) {
WL.Logger.debug("Result: "+progress)
}
function downloaderFailure(error) {
WL.Logger.error("Error: "+error);
}
Co się dzieje, że postęp będzie tylko wyjście po plik został pobrany. Jeśli ustawię PluginResult.Status na NO_RESULT, to nic nie wyświetli.
Dzięki za odpowiedź. Zamiast tego skorzystałem z funkcji pobierania Phonegap, ale skierowanie mnie na cordova.getThreadPool przydało się w innych częściach aplikacji :) –
Nie ma za co, cieszę się, że udało ci się coś wymyślić! – MBillau