背景
微信小程序发布新版本后,微信有自己的更新策略:异步更新、同步更新。异步更新会在用户下次冷启动时才会加载新版本,本次打开的仍然是旧版本。为了保证更多用户能够访问的新版本,本文利用微信wx.getUpdateManager()
暴露的UpdateManager
封装实现启动微信小程序时自动强制更新。
代码
微信提供了两个钩子暴露小程序更新事件:
-
UpdateManager.onCheckForUpdate
监听向微信后台请求检查更新结果事件。微信在小程序每次启动(包括热启动)时自动检查更新,不需由开发者主动触发。可以不进行监听,会自动触发一次,当然可以监听来进行埋点,hasUpdate
字段true
则代表有新版本。 -
UpdateManager.onUpdateReady
这个必须提前监听,暴露的是客户端主动触发下载后(无需开发者触发),下载成功后回调。通过监听新版本下载成功,才能执行UpdateManager.applyUpdate()
强制小程序重启并使用新版本。
class UpdateManager {
constructor() {
this.updateManager = wx.getUpdateManager();
this.getPromise();
this.init();
}
init