小程序实战(十七)-版本自动更新 - 新闻资讯 - 云南小程序开发|云南软件开发|云南网站建设-昆明葵宇信息科技有限公司

159-8711-8523

云南网建设/小程序开发/软件开发

知识

不管是网站,软件还是小程序,都要直接或间接能为您产生价值,我们在追求其视觉表现的同时,更侧重于功能的便捷,营销的便利,运营的高效,让网站成为营销工具,让软件能切实提升企业内部管理水平和效率。优秀的程序为后期升级提供便捷的支持!

您当前位置>首页 » 新闻资讯 » 小程序相关 >

小程序实战(十七)-版本自动更新

发表时间:2021-1-4

发布人:葵宇科技

浏览次数:84

一、需求说明
  1. 目前出现情况:每次发布新版本,如果用户正在使用小程序,都需要让用户将小程序销毁再重新启动,才能使用最新版本的代码
  2. 希望当小程序版本更新后,用户打开小程序时自动检查是否有新版本,若有,则提示用户是否更新

二、需求实现

2.1 冷启动和热启动

用户打开小程序时有两种启动方式:

  • 冷启动:若用户首次打开,或小程序销毁后被再次打开,此时需要重新加载,会检查当前最新版本的代码,并运行。
  • 热启动:如果用户已经打开过小程序,且在一定时间内再次打开,此时小程序并未被销毁,并不会检查最新代码。

2.2 热启动时实现版本更新

使用微信官方提供的 api 来检查并更新版本: 一般会将代码写在 app.js 的 onLaunch 函数中,在打开小程序时就执行

App({
    onLaunch() {
	// 判断是否能用这个 api
	if (wx.canIUse('getUpdateManager')) {
     		// 创建 updateManager 实例
		const updateManager = wx.getUpdateManager()
     		 // 检查是否有新版本
		updateManager.onCheckForUpdate(function(res) {
        		// hasUpdate 指是否有新版本,为 boolean 值
			if (res.hasUpdate) {
				updateManager.onUpdateReady(function() {
					wx.showModal({
						title: '更新提示',
						content: '新版本已经准备好,是否重启应用?',
						success: function(res) {
							if (res.confirm) {
                  						// 强制更新版本
								updateManager.applyUpdate()
							}
						}
					})
				}),
				updateManager.onUpdateFailed(function() {
					wx.showModal({
						title: '已经有新版本了',
						content: '新版本已经上线啦~,请您删除当前小程序,重新搜索打开'
					})
				})
			}
		})
	} else {
		wx.showModal({
		    title: '提示',
		    content: '当前微信版本过低,无法使用该功能,请升级到最新微信版本后重试。'
		})
	}
    }
})
复制代码

附上用到的几个 api 说明:

  1. UpdateManager.onCheckForUpdate()

  1. UpdateManager.onUpdateReady()

  1. UpdateManager.applyUpdate()



相关案例查看更多