UniApp写的Android和ios客户端更新方案

原创
08/11 14:56
阅读数 16

热更新

热更新只用更新uniapp相关代码,不用重新安装对应平台的安装包,速度快。这个方案适合只修改了uniapp代码的升级,可以满足大部分的升级场景。

  1. 编译 yarn build:app-plus
  2. 压缩编译结果,编译结果在dist/build/app-plus目录下面,进入到这个目录,然后执行 zip -r uniapp.tgz .
  3. 将编译后的 uniapp.tgz 放到手机目录,如 '/sdcard/uniapp.wgt',然后执行安装代码
function installWgt(wgtPath) {
	plus.runtime.install('/sdcard/uniapp.tgz', {}, function(res) {
		console.log('安装成功,重启app')
		// 安装成功后,重启app,使更新后的代码生效
		plus.runtime.restart()
	}, function(error) {
		console.warn('安装失败,原因: ', error)
	})
}

  1. 实际项目中,是将wgt包上传到服务器,然后客户端下载后,进行更新的,代码示例如下
var dtask = plus.downloader.createDownload(this.downlink, {}, function(d, status) {
	if (status == 200) {
		installWgt(plus.io.convertLocalFileSystemURL(d.filename))
	} else {
		console.warn('升级包下载失败')
	}
});
dtask.start();

注意:安装升级包时,要更新mainfest.json里面的版本号,versionCode和versionName,否则会提示版本号问题,如果不想更新版本号,可以在manifest.json里增加配置 "compatible": {"ignoreVersion": true},将这个配置放在app-plus下面即可

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部