Ich habe ein Cordova-Plugin geschrieben, um eine Datei herunterzuladen und im Datenordner zu speichern. Bis auf den Rückgabewert funktioniert alles einwandfrei. Ich möchte einen Fortschrittsbalken anzeigen und brauche den aktuellen Fortschritt. Hier ist der relevante Teil von meinem Code:Ausgabe verzögert von 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);
}
}
Mein 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);
}
Was passiert, ist, dass der Fortschritt nur ausgegeben wird nach die Datei heruntergeladen wurde. Wenn ich den PluginResult.Status auf NO_RESULT setze, wird nichts ausgegeben.
Danke für Ihre Antwort. Am Ende habe ich die Phonegap-Download-Funktionen verwendet, aber das Zeigen auf den cordova.getThreadPool war nützlich für andere Teile der App :) –
Gern geschehen, froh, dass Sie etwas herausgefunden haben! – MBillau