返回

Decloud实现Android和iOS热更新,下载更新文件进度条

发布时间:2022-10-12 02:08:22 518

第一步,生成wgt文件

    这一步很简单,就是直接在Hbuilder中,发行 => 制作APP升级资源包 是wgt格式的文件。

第二步,下载wgt文件,同时显示下载的进度

    这一步骤主要是应用了5+的东西。获取下载文件的大小和已经下载文件的大小。可以处理一下,就会实现实时下载的进度,
当然要写在下载发生变化的函数内:statechanged

下面是下载wgt文件的完整代码:

var wgtWaiting = null;

function downWgt()
wgtWaiting = plus.nativeUI.showWaiting("开始下载");
var wgtUrl = "http://192.168.101.148:7004/AppUpdateWgt/H54BA566C.wgt";
var wgtOption = { filename: "_doc/update/", retry: 1 };
var task =
plus.downloader.createDownload(wgtUrl, wgtOption, function (download, status)
if (status == 200) {
wgtWaiting.setTitle("开始安装");
installWgt(download.filename);
} else {
mui.alert("应用升级失败!");
wgtWaiting.close();
}
});

task.addEventListener("statechanged", function (download, status)
switch (download.state) {
case 2:
wgtWaiting.setTitle("已连接到服务器");
break;
case 3:
var percent = download.downloadedSize / download.totalSize * 100;
wgtWaiting.setTitle("已下载 " + parseInt(percent) + "%");
break;
case 4:
wgtWaiting.setTitle("下载完成");
break;
}
});
task.start();
};

function installWgt(wgtpath)
plus.runtime.install(wgtpath, {}, function (wgtinfo)
wgtWaiting.close();
mui.alert("更新完成,须重启应用!", function ()
plus.runtime.restart();
});
}, function (error)
wgtWaiting.close();
mui.alert("应用更新失败!\n"

下面是每次打开APP获取更新的请求方法,在这里我是检测APP的版本号是否是最新,如果不是最新的版本,就会提示下载更新文件:

//自动更新,检验在登陆之前就开始执行
plus.runtime.getProperty(plus.runtime.appid,function(inf){
var wgtVer = inf.version;
$.ajax({
type:"post",
url:"http://192.168.101.148:7004/GDPaymentCenterServer_FromService/AjaxServlet.do",
dataType:"json",
data:"{'method':'checkVersion','checkValue':'mainsoft','Rows':{'version':'"+wgtVer+"'}}",
success:function(data){
console.log(data.Success);
if(data.Success == "false"){
mui.confirm('做了一些体验优化,使用更加顺手。','发现新版本',['立即更新','下次再说'],function(e){
if(e.index==0){
downWgt();
}else{
return;
}
})

}else{
return;
}
},
error:function(err){

 

特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(0)
按点赞数排序
用户头像
精选文章
thumb 中国研究员首次曝光美国国安局顶级后门—“方程式组织”
thumb 俄乌线上战争,网络攻击弥漫着数字硝烟
thumb 从网络安全角度了解俄罗斯入侵乌克兰的相关事件时间线
下一篇
npm shelljs 2022-10-12 01:42:13