微信小程序运行及更新机制

这篇具有很好参考价值的文章主要介绍了微信小程序运行及更新机制。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


1、微信小程序运行机制

  • 微信小程序运行机制

微信小程序运行及更新机制

  • 官方文档描述的很详细,所以这里只介绍主要的相关概念。

1.1 前台和后台

  • 小程序启动后,界面被展示给用户,此时小程序处于前台状态。

  • 当用户点击右上角按钮关闭小程序,或者按了设备 Home 键离开微信时,小程序并没有完全终止运行,而是进入了后台状态,小程序还可以运行一小段时间。

  • 当用户再次进入微信或再次打开小程序,小程序又会从后台进入前台。但如果用户很久没有再进入小程序,或者系统资源紧张,小程序可能被销毁,即完全终止运行。

1.2 小程序启动:冷启动和热启动

  • 小程序启动可以分为两种情况,一种是冷启动,一种是热启动
  1. 冷启动:如果用户首次打开,或小程序销毁后被用户再次打开,此时小程序需要重新加载启动,即冷启动。
  2. 热启动:如果用户已经打开过某小程序,然后在一定时间内再次打开该小程序,此时小程序并未被销毁,只是从后台状态进入前台状态,这个过程就是热启动。

1.3 小程序销毁

  • 通常,只有当小程序进入后台一定时间,或者系统资源占用过高,才会被销毁。具体而言包括以下几种情形:
  1. 当小程序进入后台,可以维持一小段时间的运行状态,如果这段时间内都未进入前台,小程序会被销毁。
  2. 当小程序占用系统资源过高,可能会被系统销毁或被微信客户端主动回收。

2、微信小程序更新机制

  • 微信小程序更新机制

  • 开发者在管理后台发布新版本的小程序之后,微信客户端会有若干个时机去检查本地缓存的小程序有没有新版本,并进行小程序的代码包更新。但如果用户本地有小程序的历史版本,此时打开的可能还是旧版本。

2.1 启动时同步更新

  • 在以下情况下,小程序启动时会同步更新代码包。同步更新会阻塞小程序的启动流程,影响小程序的启动耗时。

  • 如果更新失败或超时,为了保障小程序的可用性,还是会使用本地版本打开。

定期检查发现版本更新
  • 微信运行时,会定期检查最近使用的小程序是否有更新。如果有更新,下次小程序启动时会同步进行更新,更新到最新版本后再打开小程序,尽可能保证用户能够尽快使用小程序的最新版本。
用户长时间未使用小程序
  • 用户长时间未使用小程序时,为保障小程序版本的实时性,会强制同步检查版本更新,更新到最新版本后再打开小程序。

  • 若用户处于弱网环境、下载最新版本失败等情况下,仍会启动本地的较低版本。

2.2 启动时异步更新

  • 即使启动前未发现更新,小程序每次冷启动时,都会异步检查是否有更新版本。如果发现有新版本,将会异步下载新版本的代码包。但当次启动仍会使用客户端本地的旧版本代码,即新版本的小程序需要等下一次冷启动才会使用。
开发者手动触发更新
  • 在启动时异步更新的情况下,如果开发者希望立刻进行版本更新,可以使用 wx.getUpdateManager API 进行处理。在有新版本时提示用户重启小程序更新新版本。
  • 官方版本:
const updateManager = wx.getUpdateManager()

updateManager.onCheckForUpdate(function (res) {
  // 请求完新版本信息的回调
  console.log(res.hasUpdate)
})

updateManager.onUpdateReady(function () {
  wx.showModal({
    title: '更新提示',
    content: '新版本已经准备好,是否重启应用?',
    success(res) {
      if (res.confirm) {
        // 新的版本已经下载好,调用 applyUpdate 应用新版本并重启
        updateManager.applyUpdate()
      }
    }
  })
})

updateManager.onUpdateFailed(function () {
  // 新版本下载失败
})
  • 实际使用版本:
//app.js
App({
    onLaunch() {
        this.update()
    },
 
    // 版本更新
    update() {
        const updateManager = wx.getUpdateManager()
 
        updateManager.onCheckForUpdate(function (res) {
            // 请求完新版本信息的回调
            if(res.hasUpdate) {
 
                // 新版本下载成功
                updateManager.onUpdateReady(function () {
                    wx.showModal({
                        title: '更新提示',
                        content: '新版本已经准备好,请您重启应用,以确保正常使用。',
                        success: function (res) {
                            if (res.confirm) {
                                // 新的版本已经下载好,调用 applyUpdate 应用新版本并重启
                                updateManager.applyUpdate()
                            }
                        }
                    })
                })
 
                // 新版本下载失败
                updateManager.onUpdateFailed(function () {
                    wx.showModal({
                        title: '更新提示',
                        content: '检测到了新版本,但是下载失败了~'
                    })
                })
 
            }
        })
    }
})

2.3 小程序管理后台的相关设置

  • 小程序开发者可以通过在小程序管理后台进行设置,影响更新逻辑。
优先使用本地版本设置
  • 若开发者判断某些较新的小程序版本无需强制用户同步更新到最新版本,可以在小程序管理后台「设置」-「功能设置」-「优先使用本地版本设置」中进行设置,设置后若同步更新时检查本地版本不低于该版本,则优先使用本地版本,同时将会异步下载最新版本的代码包。
小程序最低可用版本设置
  • 若开发者判断某些较旧的小程序版本服务不再可用,可以在小程序管理后台 「设置」-「功能设置」-「小程序最低可用版本设置」中进行设置。设置后若同步更新时检查本地版本低于该版本,则无法打开,并继续尝试下载最新版本、若异步更新,则会在检查到更新后提示用户重启小程序更新新版本。

  • 操作步骤如下:

微信小程序运行及更新机制

微信小程序运行及更新机制

微信小程序运行及更新机制文章来源地址https://www.toymoban.com/news/detail-409362.html

  • 最终小程序打开如下图所示
    微信小程序运行及更新机制

注意

  1. 开发者在后台发布新版本之后,无法立刻影响到所有现网用户,但最差情况下,也在发布之后 24 小时之内覆盖绝大多数用户。
  2. 小程序管理后台的「优先使用本地版本设置」和「小程序最低可用版本设置」不会影响同步更新与异步更新的选择。

到了这里,关于微信小程序运行及更新机制的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 微信小程序强制更新

    目录  冷启动 热启动 小程序更新机制: 强制更新方案 如何测试? 冷启动:如果用户首次打开,或小程序销毁后被用户再次打开,此时小程序需要重新加载启动,即冷启动。 热启动:如果用户已经打开过某小程序,然后在一定时间内再次打开该小程序,此时小程序并未被销

    2024年02月09日
    浏览(64)
  • 微信小程序监测版本更新

    在index.js里面 不放到app.js里面是因为有登录页面,在登录页面显示更新不太友好  在小程序测试的时候需要 添加编译模式 才可以模拟版本更新,发布到正式版本自动生效   点了确定就会自动刷新页面  

    2024年02月11日
    浏览(43)
  • uniapp 微信小程序:更新

    冷启动 :如果用户首次打开,或小程序销毁后被用户再次打开,此时小程序需要重新加载启动,即冷启动。 热启动 :如果用户已经打开过某小程序,然后在一定时间内再次打开该小程序,此时小程序并未被销毁,只是从后台状态进入前台状态,这个过程就是热启动。 启动时

    2024年02月02日
    浏览(39)
  • 微信小程序检查版本更新

    新建文件 version-util.js 在app.js中引入:

    2024年02月10日
    浏览(40)
  • 微信小程序-文件基础(持续更新)

    所处位置:小程序项目,根目录下 作用:存放,构成小程序的各个页面的代码文件,如下图pages文件中存放了index,logs,main子文件夹。   补充知识点: 根目录 :起源于早期将Windows文件的分级管理比喻成大树形状,驱动器一级文件夹就相当于大树的根部,故称根目录。下级

    2024年01月17日
    浏览(37)
  • 优化微信小程序更新体验:异步更新与强制更新方案解析

    在微信小程序的开发和迭代过程中,新版本覆盖率的问题一直备受关注。由于小程序采用异步更新机制,在用户首次打开或冷启动时才会检查并下载新版本,导致部分用户无法及时应用上最新版本。为了解决这一问题,微信团队经过深入研究和讨论,提出了几种解决方案,并

    2024年01月25日
    浏览(51)
  • 微信小程序检查版本更新并重启

    最近开发小程序时候碰上了一个问题,当发布新版本小程序后,需要用户能赶紧用上最新的,避免出问题。查了一下官方文档,总结出几个情况如下: 微信运行时,会定期(24小时内)检查最近使用的小程序是否有更新 (黄花菜都凉了) 用户长时间未使用小程序时,会强制同步

    2024年02月10日
    浏览(46)
  • uni微信小程序强制用户更新版本

    强制更新的代码参考官方文档 uni.getUpdateManager() | uni-app官网 我这边的如下: 效果:

    2024年01月25日
    浏览(35)
  • 微信小程序(十三)生命周期-更新应用提醒

    注释很详细,直接上代码 上一篇 新增内容: 1. onLaunch 用法 2. onShow 用法 3. onHide 用法 4.应用更新API的调用模板 源码: 效果演示: 模拟成功的情况 2.模拟失败的情况 下一篇

    2024年01月25日
    浏览(47)
  • 微信小程序克隆到运行

    小程序开发工具下载:官网登陆后下载开发软件 https://mp.weixin.qq.com/ https://mp.weixin.qq.com/cgi-bin/wx 1.git克隆 2.安装依赖 npm i 如果遇到卡在node lib/install.js 一直不进行 重新运行安装:(https://www.python100.com/html/3716RLP8FZM2.html) 理解npm install --ignore-scripts 3.安装完运行 如果报错: 可以尝

    2024年02月11日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包