微信小程序新版本提示更新
公司小程序项目上线,后续会有小版本迭代,为了让用户在我们迭代版本后能够及时使用最新版本的功能,我们做了以下优化...
知识点1:当用户点击左上角的关闭按钮或者按设备Home键离开微信时,小程序并不是直接销毁而是进入后台;
当你进入微信或者再次打开小程序时,都会从后台进入前台,小程序只有在后台运行一定时间或者占用系统资源过多时才会真正销毁。
知识点2:小程序的启动分为“冷启动”和“热启动”。
热启动是指:小程序打开后,在一段时间内(目前为5分钟)若再次打开,后台的小程序会切换到前台。
冷启动是指:小程序第一次打开,或者销毁后再次打开。
知识点三:更新版本
冷启动时,若发现有新版本,则会异步下载新版本的代码包,并与客户端本地包同时启动,即直到下次冷启动时才会应用小程序的新版本。
如果想立即应用最新版本,使用wx.API来处理。
代码如下:
// 在app.js中写入以下代码
(){
如果(wx。('')){
= wx.()
.((res){
.log('====',res)
// 请求新版本信息后的回调
如果(解析度){
.log('res.====')
.( () {
wx.({
: '更新提醒',
: ‘新版本已准备就绪,是否要重新启动应用程序?’,
:(分辨率){
.log('====',res)
// res: {: “:ok”, : , : true}
如果(解析度){
// 新版本已下载,调用新版本应用并重启
.()
})
})
.( () {
// 新版本下载失败
wx.({
: '有新版本啦~',
:'新版本已上线~请删除当前小程序并重新搜索打开~'
})
})
})
知识点4:小程序重新初始化时会触发事件,该事件在页面事件之前触发,获取小程序更新版本号可以写入。
知识点5:
版本更新无法在开发版和试用版中进行测试
在开发者工具中编译时需要选择“模拟更新编译”。
![在此处插入图片描述(,png)
(对于某些版本的开发者工具,每次编译时都需要重新检查此选项)
点击OK重新编译。
页面会弹出并显示:
点击确认后:
控制台显示:
知识点6:由于小程序不断更新,部分功能可能需要微信客户端最新版本才能使用,此时可以弹窗提醒用户更新至微信最新版本。
如果(wx。('')){
...
} 别的 {
// 不能使用
wx.({
: '暗示',
:'当前微信版本过低,无法使用该功能,请升级至微信最新版本后重试。'
})
完整版本:
(){
如果(wx。('')){
= wx.()
.((res){
如果(解析度){
.( () {
wx.({
: '更新提醒',
: ‘新版本已准备就绪,是否要重新启动应用程序?’,
:(分辨率){
如果(解析度){
.()
})
})
.( () {
wx.({
: '有新版本啦~',
:'新版本已上线~请删除当前小程序并重新搜索打开~'
})
})
})
} 别的 {
wx.({
: '暗示',
:'当前微信版本过低,无法使用该功能,请升级至微信最新版本后重试。'
})
知识点7:如果在 中发起请求,则是异步请求,如果对交互顺序有要求,比如:版本更新-重新取数据-用户展示,那么就需要考虑在 中重新取数据。
知识点8:
小程序启动时正常会进行热更新,下载新版本的包,下次启动时使用新包,但是发现更新失败。
官方解答:策略的有效性与网络环境、发布时间等多个因素有关,我们会尽量以最快的速度更新小程序,但不能保证每次热更新都能成功。
知识点9:
小程序的异步更新发生在冷启动过程中,官方不建议使用热更新。原因:
官方文档 – 更新