关于销毁
当用户点击了右上角的胶囊按钮关闭小程序,或者滑动屏幕返回手机主页面(离开微信),这时候小程序并没有直接销毁,而是进入了后台。当再次进入微信或者再次打开小程序,又会从后台进入前台。
只有当小程序进入后台一定时间(也就是时间过长),或者系统资源占用过高,才会被真正的销毁。
冷启动 & 热启动
冷启动:小程序首次打开或者销毁后再次被打开。
热启动:是指从后台切换到前台,或者小程序在后台运行,重新打开小程序。
下载更新
小程序冷启动时如果发现有新版本,将会异步下载新版本的代码包,
如果需要马上应用最新版本,可以使用 wx.getUpdateManager
API 进行处理。
// app.js
App({
/**
* 当小程序初始化完成时,会触发 onLaunch(全局只触发一次)
*/
onLaunch: function () {
// 检查是否需要更新
this.checkForUpdates();
},
/**
* 当小程序启动,或从后台进入前台显示,会触发 onShow
*/
onShow: function (options) {
},
/**
* 当小程序从前台进入后台,会触发 onHide
*/
onHide: function () {
},
checkForUpdates: function () {
if (!wx.canIUse(getUpdateManager)) {
wx.showModal({
title: '提示',
content: '当前微信版本过低,请升级到最新微信版本后重试。',
showCancel: false,
});
return;
}
const updateManager = wx.getUpdateManager();
updateManager.onUpdateReady(function () {
wx.showModal({
title: '更新提示',
content: '新版本已经准备好,是否重启应用?',
showCancel: false,
success: function (res) {
if (res.confirm) {
// 新的版本已经下载好,调用 applyUpdate 应用新版本并重启
updateManager.applyUpdate();
}
}
});
});
updateManager.onUpdateFailed(function () {
// 新版本下载失败
wx.showModal({
title: '已经有新版本喽~',
content: '请您删除当前小程序,到微信 “发现-小程序” 页,重新搜索打开哦~',
showCancel: false,
});
});
},
});
tip:微信后台有设置“最低基础库版本”,低于最低基础库版本的少数用户可能存在基础库缓存问题,应根据【微信官方文档】基础库版本分布的映射关系,对这部分用户提示更新。