我们在写项目中,每次整包更新会比较麻烦,所以出现了热更新

uniapp热更新包制作-----》发行------》原生APP,制作应用wgt包

热更新不支持情况
1.SDK部分有调整,比如新增了Maps模块等,不可通过此方式升级,必须通过整包的方式升级。
2.原生插件的增改,同样不能使用此方式,老的非自定义组件编译模式,如果之前工程没有nvue文件,但更新中新增了nvue文件,不能使用此方式

看代码

//res.data是后台给你的判断是否需要更新的返回值

//热更新
if (res.data.versionName == 'HOT_UPDATE') {
		//下载wgt包
		uni.downloadFile({
				url: res.data.downloadUrl,
				success: downloadResult => {
						//安装wgt包
								plus.runtime.install(
										downloadResult.tempFilePath,
								{
										force: true
								},
								() => {
									// 应用热重启,重新启动进入首页。
									plus.runtime.restart();
								});
						}
					});
} else {
//整包更新 
//因为在部分安卓手机plus.runtime.openURL(url) 无效也不报错,所以需要传 浏览器包名 'com.android.browser',如果找不到指定浏览器包名就会进入失败,再次进入跳转,所以会有两层逻辑
					plus.runtime.openURL(res.data.downloadUrl,err => {
								plus.runtime.openURL(res.data.downloadUrl, err => {
									console.log(err);
								});
				},'com.android.browser'); //打开更新地址
}
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐