网站内容更新不及时(微信小程序启动会马上触发新版本的下载代码包)
优采云 发布时间: 2021-12-15 11:19网站内容更新不及时(微信小程序启动会马上触发新版本的下载代码包)
这几天一直在做微信小程序的二次开发,每天都要发布程序,但是发布后微信上的视图小程序和之前的一模一样。完全没变,但是我在本地改了,一直没有打开。不要验证有效的域名。为什么是这样?? ? ? ?
这与小程序的更新机制有关,因为小程序的更新机制是异步的,所以有些用户不会立即应用新版本。
小程序启动时有两种情况,一种是“冷启动”,一种是“热启动”。如果用户已经打开了小程序,然后在一定时间内再次打开小程序,此时无需重启,只需将后台状态的小程序切换到前台即可,这个过程是一个热点开始; 冷启动是指用户第一次打开小程序或者被微信主动销毁后再次打开,需要重新加载小程序并启动。
小程序的异步更新发生在冷启动过程中。当发现新版本时,会异步下载新版本的代码包,但不会立即应用最新版本。只有在小程序下次冷启动后才会应用新版本。
于是在网上找到了这个方法:
异步更新+强制更新:同步校验更新和热模块替换的折中,即保持异步更新机制。小程序代码包异步下载后,提供了重新启动小程序的能力,让您在遇到紧急问题时可以立即解决。
小程序冷启动时,会自动向微信后台请求新版本信息。如果有新版本,会立即触发新版本的下载。
代码:
1 // wx.getUpdateManager 在 1.9.90 才可用,请注意兼容
2 const updateManager = wx.getUpdateManager()
3
4 updateManager.onCheckForUpdate(function (res) {
5 // 请求完新版本信息的回调
6 console.log(res.hasUpdate)
7 })
8
9 updateManager.onUpdateReady(function () {
10 wx.showModal({
11 title: '更新提示',
12 content: '新版本已经准备好,是否马上重启小程序?',
13 success: function (res) {
14 if (res.confirm) {
15 // 新的版本已经下载好,调用 applyUpdate 应用新版本并重启
16 updateManager.applyUpdate()
17 }
18 }
19 })
20 })
21
22 updateManager.onUpdateFailed(function () {
23 // 新的版本下载失败
24 })
那么如何在本地测试这个东西呢?
然后你可以在下次编译时模拟更新。
点击此处查看官方文档