ファイルをダウンロードしてデータフォルダに保存するためにCordovaプラグインを作成しました。戻り値以外はすべて正常に動作しています。プログレスバーを表示して現在の進捗状況を取得する必要があります。ここに私のコードから関連する部分があります:Cordovaプラグインからの出力が遅い
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);
}
}
私は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);
}
何が起こるかというと進歩が唯一のファイルがダウンロードされた後に出力になるということです。 PluginResult.StatusをNO_RESULTに設定すると、何も出力されません。
あなたの答えをありがとう。代わりにPhonegapのダウンロード機能を使用して終了しましたが、cordova.getThreadPoolを私に指摘すると、アプリの他の部分に便利でした:) –
何かを見つけられたことを嬉しく思います! – MBillau