//js 调用下载
let FileDownLoadProgress = function(downLoadUrl, senarioDirName, progressCall, completeCall) {
this._fileName = "",
this._loadingResult = LoadingResult.Unknow,
this.onFileDownLoad = function(ret) {
if (ret.flag == "progress") {
if (progressCall) progressCall(ret.totalReceived, ret.totalExpected);
} else if (ret.flag == "success") {
this._fileName = ret.fullName;
cchelper.logSenario("[onFileDownLoad] File download ok -> " + ret.fullName);
let writablePath = jsb.fileUtils.getWritablePath();
cc.BCBridge.decompressFile(this.onDecompressFile, this, ret.fullName, "", writablePath + "Update/senarios/"+senarioDirName);
} else {
this._loadingResult = LoadingResult.NetError;
if (completeCall) completeCall(false, ret.errorStr);
}
};
this.onDecompressFile = function(ret) {
if (ret.flag == 100) {
this._loadingResult = LoadingResult.OK;
cchelper.logSenario("[onFileDownLoad] Decompress File OK !");
jsb.fileUtils.removeFile(this._fileName);
if (completeCall) completeCall(true);
} else {
cchelper.logSenario("[onFileDownLoad] Decompress File Error: " + ret.flag);
this._loadingResult = LoadingResult.FileError;
if (completeCall) completeCall(false, "decompress file failed");
}
};
//开始下载
this.start = function() {
cc.BCBridge.startDownLoadFile(this.onFileDownLoad, this, downLoadUrl, senarioDirName);
};
};
this.downloadSenario = function(senarioId, resUrl, progressCall, completedCall) {
//下载对象
let download = new FileDownLoadProgress(resUrl, senarioId, progressCall, completedCall);
download.start();
};
onProgress: function() {};
onCompleted: function(isOK, errStr, sceneId, sceneVersion) {};
this.downloadSenario(
sceneId,
resUrl,
(received, expected) => this.onProgress(received, e
js调用c++下载资源附带回调
最新推荐文章于 2023-12-04 09:10:10 发布
本文介绍如何利用C++实现一个功能,让JavaScript能够调用来下载资源,并且包含回调机制,确保下载完成后能通知JavaScript。
摘要由CSDN通过智能技术生成