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('当前已是最新版本!')
}
})
});
如果觉得文章还可以,就点个赞支持一下作者吧
本文介绍了一种结合H5与App的在线热更新方法,利用wgt资源包实现快速便捷的小版本更新,避免用户重复手动安装。文中详细展示了如何通过代码检查更新、下载新版本并自动安装。

1573

被折叠的 条评论
为什么被折叠?



