H5+App——在线热更新

本文介绍了一种结合H5与App的在线热更新方法,利用wgt资源包实现快速便捷的小版本更新,避免用户重复手动安装。文中详细展示了如何通过代码检查更新、下载新版本并自动安装。
H5+App——在线热更新

简述:在线资源更新,使 用的为wgt资源包,wgt资源包可用于小版本更新使用,wgt资源包优势打包方便快捷无需用户重复手动安装,在线资源更新也可为安装包,即apk、ipa,安卓端实测

注意:在每次更新之前更新版本号应大于线上版本

	var that=this
	plus.runtime.getProperty(plus.runtime.appid, function(widgetInfo) {
    //通过appid获取app信息
		that.axios.post('/my/v1/my204',{
    		SETTB96CA01: widgetInfo.version//app当前版本
        }).then(result => {
        	//console.log(result)
        	var data = result.data;
        	if (data.result==1) {
                //data.url资源路径
               	var dtask=plus.downloader.createDownload(data.url, {
                    //下载更新资源
                	filename: "_doc/update/"
                }, function(d, status) {
                	if(status == 200) {
                		console.log("下载更新文件成功:" + d.filename);
                		plus.runtime.install(d.filename, {
                            force:true//忽略版本校验,强制更新
                        }, function() {
                      		plus.nativeUI.closeWaiting();//关闭消息提示
                      		// console.log("安装更新文件成功!");
                      		plus.nativeUI.alert("应用资源更新完成!", function() {
                                //消息弹框
                      			plus.runtime.restart();//更新完重启应用
                      		});
                      	}, function(e) {
                      		plus.nativeUI.closeWaiting();
                      	// console.log("安装更新文件失败["+e.code+"]:"+ e.message);
                      	// plus.nativeUI.alert("安装更新文件失败["+e.code+"]:"+ e.message);
                      		if(e.code == 10) {
                      			alert('请清除临时目录');
                      		}
                      	});
                	} else {
                		console.log("下载失败!");
                		plus.nativeUI.alert("下载失败!");
                	}
                	plus.nativeUI.closeWaiting();
                })
                try {
                  	dtask.start(); // 开启下载的任务
                  	var prg = 0;
                  	dtask.addEventListener('statechanged', function(
                    	task,
                    	status
                  	) {
                    // 给下载任务设置一个监听 并根据状态  做操作
                    switch (task.state) {
                      	case 1:
                        	//'正在下载';
                        	break;
                    	case 2:
                        	// '已连接到服务器';
                        	break;
                     	case 3:
                            prg = parseInt(
                              (parseFloat(task.downloadedSize) /
                                parseFloat(task.totalSize)) *
                                100
                            );
                            if(prg%2==0){
                            	//当前进度
                            }
                        	break;
                        case 4:
                            break;
                        }
                  	});
                } catch (err) {
                  	if (ismanual) {
                   	 	plus.nativeUI.toast('网络异常,请稍候再试' + err);
                  	}
                }
       		}else{
        		plus.nativeUI.alert('当前已是最新版本!')
        	}
    	})
	});

如有兼容问题请查看此文章

如果觉得文章还可以,就点个赞支持一下作者吧

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值