小程序的更新机制

开发者在管理后台发布新版本的小程序之后,如果某个用户本地有小程序的历史版本,此时打开的可能还是旧版本。微信客户端会有若干个时机去检查本地缓存的小程序有没有更新版本,如果有则会静默更新到新版本。总的来说,开发者在后台发布新版本之后,无法立刻影响到所有现网用户,但最差情况下,也在发布之后 24 小时之内下发新版本信息到用户。用户下次打开时会先更新最新版本再打开。

启动时更新

小程序每次冷启动时,都会检查是否有更新版本,如果发现有新版本,将会异步下载新版本的代码包,并同时用客户端本地的包进行启动,即新版本的小程序需要等下一次冷启动才会应用上。

关于冷/热启动及前/后台的概念,请参照小程序文档运行机制

可以通过wx.getUpdsateManagerAPI来强制用户在启动时更新新版本。

        wx.showLoading({
title: '加载中..',
mask: true
}) const updateManager = wx.getUpdateManager() updateManager.onCheckForUpdate(function (res) {
// 请求完新版本信息的回调
console.log('是否有新版本: ', + res.hasUpdate)
if (!res.hasUpdate) {
wx.hideLoading()
}
}) updateManager.onUpdateReady(function () {
wx.hideLoading()
wx.showModal({
title: '更新提示',
content: '新版本已经准备好,是否重启应用?',
showCancel: false,
success: function (res) {
if (res.confirm) {
// 新的版本已经下载好,调用 applyUpdate 应用新版本并重启
updateManager.applyUpdate()
}
}
})
}) updateManager.onUpdateFailed(function () {
wx.hideLoading();
wx.showModal({
title: '提示',
content: '检查到有新版本,但下载失败,请检查网络后重试',
showCancel: false
})
}) setTimeout(wx.hideLoading, 5000)

由于onCheckForUpdate在检查新版本的时候会存在一定的延迟(在开发工具上大概4秒左右),为防止在检查新版本过程中用户触发操作跳出首页,添加了一个wx.showLoading进行遮盖。

需要注意,上面的代码更新到新版本后也是不会立即生效的,所以还是需要用户进行一次冷启动。

参考:https://developers.weixin.qq.com/miniprogram/dev/framework/runtime/update-mechanism.html

最新文章

  1. 猥琐的wordpress后门分享
  2. js获取项目根目录的方法
  3. sql里将重复行数据合并为一行,数据用逗号分隔
  4. Linux守护进程(init.d和xinetd)
  5. 我的DbHelper数据操作类(转)
  6. [Oracle] 接线表
  7. Zepto Code Rush 2014——Dungeons and Candies
  8. 程序猿必要10免费的钱jquery小工具
  9. 《jQuery权威指南》学习笔记之第2章 jQuery选择器
  10. Nimbus<一>Storm系列(五)架构分析之Nimbus启动过程
  11. 记录-新建一个web应用的过程与曲折
  12. PS各个工具的字母快捷键和英…
  13. EasyUI DataGrid 基于 Ajax 自定义取值(loadData)
  14. Python之——CentOS 6.5安装Python2.7.14
  15. shell启动执行cypher语句
  16. 微软BI 之SSIS 系列 - 理解Data Flow Task 中的同步与异步, 阻塞,半阻塞和全阻塞以及Buffer 缓存概念
  17. [UE4]Exec数据类型
  18. python第一类对象,闭包,迭代器
  19. Codeforces gym101612 L.Little Difference(枚举+二分)
  20. NOIP2018 No regrets youth

热门文章

  1. luogu P1336 最佳课题选择 |背包dp
  2. C# 设置、删除、读取Word文档背景——基于Spire.Cloud.Word
  3. [TimLinux] JavaScript 模态框可拖动功能实现——节流版
  4. [TimLinux] JavaScript querySelectorAll返回对象无法使用indexOf问题
  5. 强化学习七 - Policy Gradient Methods
  6. 小白学 Python 爬虫(18):Requests 进阶操作
  7. 【Hybird】274-Hybird App 应用开发中 5 个必备知识点复习
  8. vue中使用this遇到的坑
  9. linux-linux mysql5.7主从搭建
  10. 为什么我的tomcat启动不起来?