小程序的更新机制_如何实现强制更新?

时间: 2018-08-10阅读: 9672标签: 机制

在讲小程序的更新机制之前,我们需要先了解小程序的2种启动模式,分别为:冷启动和热启动。它们之间的区别是:

冷启动:是指当小程序首次被打开,或者已经销毁后打开【后台没运行】
热启动  :小程序打开后在后台运行,然后点击切换到前台的情况。一般后台运行时间为5分钟


小程序的更新机制

小程序不同的启动方式,对应的更新情况不不一样的。当小程序是冷启动的情况下,小程序会自动去判断当前是否为最新版本,如果存在新版本,则将异步进行下载,然后下次冷启动的时候才会运行新版本。

当小程序是热启动的情况下,是不会进行版本更新检查的。


如何实现强制更新

无论冷启动,还是热启动。小程序都不会马上更新的,如果我们需要强制更新,即一打开就提示用户更新,需要如何实现呢?这里首先想到就是调用wx.getUpdateManager API进行处理。但是需要注意的是:基础库需要大于1.9.90,如果不是程序会报错,在开发的时候,可以通过选择右上角的“详情--》项目设置--》调试基础库”进行设置。


小程序强制更新代码实现

直接上代码,如下:

updataApp: function () {//版本更新
    if (wx.canIUse('getUpdateManager')) {
      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: '新版本已经上线啦~,请您删除当前小程序,重新搜索打开哟~',
            })
          })
        }
      })
    } else {
      wx.showModal({// 如果希望用户在最新版本的客户端上体验您的小程序,可以这样子提示
        title: '提示',
        content: '当前微信版本过低,无法使用该功能,请升级到最新微信版本后重试。'
      })
    }
  },

在onLaunch中调用即可:

onLaunch: function (options) {
    this.updataApp()
},


站长推荐

1.云服务推荐: 国内主流云服务商,各类云产品的最新活动,优惠券领取。地址:阿里云腾讯云华为云

链接: http://www.fly63.com/article/detial/1003

对NodeJS模块机制的理解

模块定义上下文提供exports对象用于导出当前模块的方法和变量,并且他是唯一的导出出口,exports实际上是module.exports,而module.exports就是以一个暴露给外部的对象。

web认证机制

以前对认证这方面的认识一直不太深刻,不清楚为什么需要token这种认证,为什么不简单使用session存储用户登录信息等。最近读了几篇大牛的博客才对认证机制方面有了进一步了解。

Vue中的provide/inject机制

这对选项是一起使用的。以允许一个祖先组件向其所有子孙后代注入一个依赖,不论组件层次有多深,并在起上下游关系成立的时间里始终生效。

深入解析 Node.js 事件循环工作机制

本文从对线程、事件循环、事件循环常见的问题和错误上分别进行说明,进一步探索了 Node 的核心工作原理。每当人们谈论 Node.js 时,都会出现很多问题,比如它 究竟是什么 、这项技术有什么用、它是否 有未来 等等。

JS事件循环机制

js是一门单线程的编程语言,也就是说js在处理任务的时候,所有任务只能在一个线程上排队被执行,那如果某一个任务耗时比较长呢?总不能等到它执行结束再去执行下一个。所以在线程之内

请介绍一下MySQL数据库的锁机制?

当多个用户并发地存取数据时,在数据库中就会产生多个事务同时存取同一数据的情况。若对并发操作不加控制就可能会读取和存储不正确的数据,破坏数据库的一致性。

TypeScript 的 类型保护机制

在编写 TS 时,它做了比我们看到的更多的事情,例如类型保护机制。让我们编写的代码更加严谨,至于怎么回事,让我们来看看吧。由于这些机制的存在,就算你仍旧以 JS 原生的书写方式,也能帮助你提前发现代码中潜在的问题。

JS 引擎 V8 新机制:JIT-less 模式

V8 v7.4 现在支持无需在 runtime 阶段分配可执行内存就能执行 JavaScript 代码。在其默认配置中,V8 很大程度上依赖于在 runtime 阶段分配和修改可执行内存的能力。例如,作为一个包含优化过程的编译器

React Fiber的优先级调度机制与事件系统

经典的事件系统分成两大块,绑定事件与分派事件,在浏览器中,分派事件很少人会直接dispatchEvent。因为创建一个DOM 事件是非常复杂的事情,不同的事件对象对应不同的事件构造器,传参也五花八门 ​

几道面试题来看JavaScript执行机制

根据 JavaScript 的运行环境,锁定它为单线程,任务需要排队执行,如果网站资源比较大,这样会导致浏览器加载会很慢,但实际上并没有,大家肯定立刻想到了同步和异步。所谓的同步和异步也是在排队,只是排队的地方不同。

点击更多...

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!