由于小程序的缓存机制,小程序发布后,并不能保证所有打开的用户体验到最新版,因为有一部分老用户是用的缓存的老版本,可能需要删除小程序再打开才能更新,为了解决这个问题,我们在开启小程序的时候自动检测更新,从而主动更新
话不多说,直接上代码
/**
* 检测当前的小程序
* 是否是最新版本,是否需要下载、更新
*/
function checkUpdateVersion() {
//创建 UpdateManager 实例
const updateManager = wx.getUpdateManager();
//检测版本更新
updateManager.onCheckForUpdate(function(res) {
// 请求完新版本信息的回调
if (res.hasUpdate) {
//监听小程序有版本更新事件
updateManager.onUpdateReady(function() {
wx.showModal({
title: '更新提示',
content: '新版本已经准备好,是否重启应用?',
success(res) {
if (res.confirm) {
// 新的版本已经下载好,调用 applyUpdate 应用新版本并重启
updateManager.applyUpdate();
}
}
})
})
updateManager.onUpdateFailed(function() {
// 新版本下载失败
wx.showModal({
title: '新版本更新失败',
content: '1. 从最近使用中拖动小程序添加到我的小程序中 -> 2. 从最近使用中拖动小程序到底部删除当前小程序 -> 3. 从我的小程序中重新打开(或到微信 “发现-小程序” 页,重新搜索打开)完成更新',
})
})
}
})
}
module.exports = {
checkUpdateVersion: checkUpdateVersion
}
我把上面这段代码封装到一个工具类js里(目录为根目录下的commonjs/upgrade.js
),然后在app.js
的 onLaunch
里面调用:
//app.js
var upgrade = require("commonjs/upgrade.js");
App({
onLaunch: function () {
// 检查小程序更新
upgrade.checkUpdateVersion()
}
})
viencoding.com版权所有,允许转载,但转载请注明出处和原文链接: https://viencoding.com/article/280
测试下
真的不错
@liuhaiqiang999 111