微信小程序-强制手机端更新

小程序的更新机制

开发者在管理后台发布新版本的小程序之后,如果某个用户本地有小程序的历史版本,此时打开的可能还是旧版本。微信客户端会有若干个时机去检查本地缓存的小程序有没有更新版本,如果有则会静默更新到新版本。总的来说,开发者在后台发布新版本之后,无法立刻影响到所有现网用户,但最差情况下,也在发布之后 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.小程序起步 (1)点击https://mp.weixin.qq.com/wxopen/waregister?a...
    GXW_Lyon阅读 8,730评论 0 0
  • 因新工作主要负责微信小程序这一块,最近的重心就移到这一块,该博客是对微信小程序整体的整理归纳以及标明一些细节点,初...
    majun00阅读 12,123评论 0 9
  • 这两天开发微信小程序,刚好在网上看到一篇文章与小程序相关。 问题:在小程序发版之后,用户本地并没有对之前版本的小程...
    clth阅读 14,320评论 3 20
  • 秋夜宁静 一声鸟鸣 让秋夜多情 一声鸟鸣 把山庄唤醒 山庄多寂静 鸟鸣 引来秋夜的情思 一片落叶 回望 鸟鸣的季节...
    辣嘴热评阅读 1,241评论 2 2
  • 星期五,正巧陈庄大集,陈庄的路本来就窄,接孩子的电动二轮三轮比汽车灵便,从来都鄙视着汽车的速度,都很蛮横...
    Givemeone阅读 861评论 0 0