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

第一步,生成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" + error.message);
                });
            };

下面是每次打开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){

                    }
                });
            });
  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值