0.热更新总体步骤如下
1.获取app版本
官方获取app版本信息有坑,所以可以使用h5+的方案代替
这里获取app版本的主要目的就是去判断是否需要更新。
如果觉得这种获取方式麻烦也可以直接在状态机或者vue.prototype中直接存储一个当前版本。
plus.runtime.getProperty(plus.runtime.appid,(res)=>{
console.log(res.version)
});
//-----------------------------------------
// 获取指定APPID对应的应用信息
// plus.runtime.getProperty(appid,callback)
//-----------------------------------------
// 获取appid
// plus.runtime.appid
//-----------------------------------------
2.下载wgt更新包,并安装
同上,uni官方依然有坑,使用h5+解决方案
//新建一个下载任务
//download_url下载地址,一般是判断完是否需要更新后返回的下载地址
let download_url = 'https://110.110.110.110/system/download'
let task = plus.downloader.createDownload(download_url,{
filename: '_doc/update/' + new Date().getTime() + '/', //文件的保存地址(这里可以不用动,一定要保证地址或包名是唯一的)
})
//监听下载状态(res,state)
task.addEventListener('statechanged',(res,state)=>{
this.max = res.totalSize //文件大小
this.rate = res.downloadedSize //已下载文件大小
//判断下载完成
if(res.state == 4 && state == 200){
//安装文件(res.filename是下载完成的文件)
plus.runtime.install(res.filename,{},succ=>{ //安装成功回调
plus.runtime.restart(); //重启app
},err=>{ //安装失败回调
console.log(err)
});
}
})
//开始下载任务
task.start()
本文详细介绍了一种使用H5+方案实现的App热更新流程,包括如何获取应用版本信息及判断是否需要更新,以及如何下载并安装wgt更新包的具体步骤。
517

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



