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

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

在讲小程序的更新机制之前,我们需要先了解小程序的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.云服务推荐: 国内主流云服务商,各类云产品的最新活动,优惠券领取。地址:阿里云腾讯云华为云

2.广告联盟: 整理了目前主流的广告联盟平台,如果你有流量,可以作为参考选择适合你的平台点击进入

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

关闭

JS垃圾回收机制

找出不再继续使用的变量,然后释放掉其占用的内存。当变量进入环境(可以理解为一个函数开始执行了)时,就将这个变量标记为“进入环境”,从逻辑上讲,不能释放掉进入环境的变量,而当变量离开环境的的时候,则将其标记为离开环境。

浏览器JS事件触发机制

事件会从最外层开始发生,直到最具体的元素,也就是说假如父元素与子元素都绑定有点击事件,又互相重叠,那么先出发的会是父元素的事件,然后再传递到子元素。事件会从最内从的元素开始发生,再向外传播,正好与事件捕获相反。

JavaScript运行机制浅析

输出结果是undefined, 这种现象被称成“预解析”:JavaScript引擎会优先解析var变量和function定义。在预解析完成后,才会执行代码。如果一个文档流中包含多个script代码段(用script标签分隔的js代码或引入的js文件)

weakSet垃圾回收机制

如果其它对象没有引用该对象,垃圾回收机制会自动回收该对象所占的内存,不会考虑该对象是否还在WeakSet对象中。 正是由于以上特性,WeakSet中的成员对象会随时消失(垃圾回收机制运行前后可能会不同)

创建js hook钩子_js中的钩子机制与实现

钩子机制也叫hook机制,或者你可以把它理解成一种匹配机制,就是我们在代码中设置一些钩子,然后程序执行时自动去匹配这些钩子;这样做的好处就是提高了程序的执行效率,减少了if else 的使用同事优化代码结构

JS底层机制

微任务:Promise,process.nextTick宏任务:整体代码script,setTimeout,setInterval,微任务会先于宏任务执行,微任务队列空了才去执行下一个宏任务

浅谈小程序运行机制

接触小程序有一段时间了,总得来说小程序开发门槛比较低,但其中基本的运行机制和原理还是要懂的。“比如我在面试的时候问到一个关于小程序的问题,问小程序有window对象吗?

浅析前端页面渲染机制

作为一个前端开发,最常见的运行环境应该是浏览器吧,为了更好的通过浏览器把优秀的产品带给用户,也为了更好的发展自己的前端职业之路,有必要了解从我们在浏览器地址栏输入网址到看到页面这期间浏览器是如何进行工作的

Vue中的provide/inject机制

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

JS事件循环机制

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

点击更多...

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