博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
微信小程序-强制手机端更新
阅读量:7035 次
发布时间:2019-06-28

本文共 1640 字,大约阅读时间需要 5 分钟。

小程序的更新机制

开发者在管理后台发布新版本的小程序之后,如果某个用户本地有小程序的历史版本,此时打开的可能还是旧版本。微信客户端会有若干个时机去检查本地缓存的小程序有没有更新版本,如果有则会静默更新到新版本。总的来说,开发者在后台发布新版本之后,无法立刻影响到所有现网用户,但最差情况下,也在发布之后 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://www.cnblogs.com/thunderLL/p/10963823.html

你可能感兴趣的文章
Bash常用快捷键
查看>>
C++11笔记
查看>>
【Spring MVC学习之处理方法返回值的可选类型】
查看>>
tomcat7+jdk1.8一键安装脚本
查看>>
QT creator编程C++第一步,说“Hello world!”
查看>>
Character类
查看>>
转载博文: Py西游攻关之IO model
查看>>
Android 后退键onBackPressed()的使用介绍
查看>>
php 输出函数常用类型转换符
查看>>
ios 实现简单的解析xml网页
查看>>
网络应用清单
查看>>
理想中的分布式架构
查看>>
[转载]jQuery 顺便学习下CSS选择器 奇偶匹配nth-child(even)
查看>>
在网页中嵌入任意字体的解决方案
查看>>
UVa 11491 Erasing and Winning
查看>>
Sencha-Touch开发环境准备(Webstorm+Ruby)
查看>>
MapReduce(3): Partitioner, Combiner and Shuffling
查看>>
转老赵同志的博客:Indy10记录及其他类型的传送
查看>>
用两个栈实现一个队列
查看>>
第三方分享
查看>>