uni-app热更新,HTML5+API

0.热更新总体步骤如下

  • 1.获取app版本
  • 2.下载wgt更新包,并安装


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()

你可能感兴趣的:(uni-app,uni-app,Android,webview,js,java,h5)