当我们的小程序线上有更新时,需要弹出个提示框,告知用户更新小程序,而不是删掉旧版,再搜索小程序,点击打开后才可以看到新版,所以好的方法是给用户个提示

在开发者工具上测试验证的时候,更新提示弹窗在小程序界面加载出来五六秒之后才弹出来,这是由于小程序在检测到有新版本之后,调用 UpdateManager.onUpdateReady(function callback)  进行版本更新监听,此时客户端主动触发下载(无需开发者触发),下载成功后回调。也就是说我们的更新提示弹窗是在小程序检测到新版本并完成新版本下载之后弹出的,所以就有了这几秒的时间差。所以这样用户体验会很差,至少应该在小程序编译时检测到有新版本就应该先给出更新提示,至于新版本下载的准备工作,可以在用户点击确认按钮之后进行,将代码写在app.js中:

App({onLaunch: function(options) {this.autoUpdate()},autoUpdate: function() {var self = this// 获取小程序更新机制兼容if (wx.canIUse('getUpdateManager')) {const updateManager = wx.getUpdateManager()//1. 检查小程序是否有新版本发布updateManager.onCheckForUpdate(function(res) {// 请求完新版本信息的回调if (res.hasUpdate) {//检测到新版本,需要更新,给出提示wx.showModal({title: '更新提示',content: '检测到新版本,是否下载新版本并重启小程序?',success: function(res) {if (res.confirm) {//2. 用户确定下载更新小程序,小程序下载及更新静默进行self.downLoadAndUpdate(updateManager)} else if (res.cancel) {//用户点击取消按钮的处理,如果需要强制更新,则给出二次弹窗,如果不需要,则这里的代码都可以删掉了wx.showModal({title: '温馨提示~',content: '本次版本更新涉及到新的功能添加,旧版本无法正常访问的哦~',showCancel: false, //隐藏取消按钮confirmText: "确定更新", //只保留确定更新按钮success: function(res) {if (res.confirm) {//下载新版本,并重新应用self.downLoadAndUpdate(updateManager)}}})}}})}})} else {// 如果希望用户在最新版本的客户端上体验您的小程序,可以这样子提示wx.showModal({title: '提示',content: '当前微信版本过低,无法使用该功能,请升级到最新微信版本后重试。'})}},/*** 下载小程序新版本并重启应用*/downLoadAndUpdate: function(updateManager) {var self = thiswx.showLoading();//静默下载更新小程序新版本updateManager.onUpdateReady(function() {wx.hideLoading()//新的版本已经下载好,调用 applyUpdate 应用新版本并重启updateManager.applyUpdate()})updateManager.onUpdateFailed(function() {// 新的版本下载失败wx.showModal({title: '已经有新版本了哟~',content: '新版本已经上线啦~,请您删除当前小程序,重新搜索打开哟~',})})}
})

如上,在检测到小程序有新版本之后,就给出弹窗提示用户下载新版并重启小程序,用户点击确定按钮后进行小程序新版本的下载和更新。也为了调用方便,将新版本下载及小程序的重启应用单独封装起来。

这样,从小程序加载到弹出版本更新弹窗只需要耗费调用新版本检测API并返回结果的时间(开发者工具测试有2~3秒),虽说还是有一点延迟,但目前也只能这样了。PS:线上版本只有在第一次时提示,之后会自动更新,不会再次弹框

好了,代码写好了,给怎么测试呢,如图:

需要注意的是,本地测试只能运行一次,想要再次测试,就需要重复上图步骤

ps:微信小程序上传时选择修改补丁,是不会有提示弹框的

微信小程序检测版本是否有更新相关推荐

  1. 微信小程序常见问题集合(长期更新)

    最新更新: 新手跳坑系列:推荐阅读:<二十四>request:fail错误(含https解决方案)(真机预览问题 跳坑指南<七十>如何让微信小程序服务类目审核通过 跳坑六十九: ...

  2. 如何选择微信小程序开发框架?2018年更新

    微信小程序是一个建立不到两年的新兴科技生态体系.得益于中国科技发展的规模和速度,一百五十万人*的小程序开发者社区已经做出了非常实用的前端开发框架,进一步提高了小程序的开发效率. (*数据来源:腾讯 - ...

  3. 微信小程序 检测小程序版本更新提示

    微信小程序新版本发布之后,用户使用依然是旧版本,这是因为在微信中有旧版本的缓存,不会及时更新到新版本.要想让用户更新到新版本,可以通过提示用户在微信中的"发现 - 小程序"入口中将 ...

  4. 微信小程序开源到github并更新的步骤

    最近研究了一下微信小程序,感觉和vue思想几乎一致,自己也在写一些小Demo进行练习,但是考虑到需要进行版本控制,于是研究了一下将项目上传到github的步骤,网上也有很多其他博主写的相关文章,我也是 ...

  5. 微信小程序开源项目库汇总-持续更新

    微信小程序开源项目库汇总,里面集合了OpenDigg 上的优质的微信小程序开源项目库,方便移动开发人员便捷的找到自己需要的项目工具等 UI组件 weui-wxss ★852 - 同微信原生视觉体验一致 ...

  6. 微信小程序--map组件视图无法更新的问题

    在使用微信小程序 map组件的时候,会有一个小问题.当出现markers是一个数组,在切换数据的时候,页面会残留上次留下来的markers. 在js中使用setData更新markers数据后,地图上 ...

  7. 微信小程序ios版本连接不了服务器,微信小程序苹果手机IOS连接报网络错误解决方案...

    微信小程序苹果手机IOS连接报网络错误,但是安卓手机正常. 这个问题主要是因为SSL版本问题,苹果版本的微信支持的是SSL v1.2,所以需要设置一下. windows服务器: 打开powershel ...

  8. 微信小程序python_macaca 打开微信小程序 (python 版本)

    看完@adfghzhang写的java版本后- Macaca 微信公众号.小程序实践,正好昨天看到了python版本的macaca,于是写了个python版的. 环境准备篇: 1.安装macaca(社 ...

  9. 【uniapp】微信小程序发布后提醒用户更新版本

    const updateManager = uni.getUpdateManager() // 小程序版本更新管理器updateManager.onCheckForUpdate(res => { ...

  10. 微信小程序版本更新后提示用户更新

    一.问题 当小程序发布新的版本后,用户如果之前访问过该小程序,通过已打开的小程序进入(未手动删除), 则会弹出提示,提醒用户更新新的版本.用户点击确定就可以自动重启更新,点击取消则关闭弹窗,不再更新. ...

最新文章

  1. tomcat 热部署 生产环境_屋顶隔热改善舍内热环境及生产性能
  2. bzoj:1666: [Usaco2006 Oct]Another Cow Number Game 奶牛的数字游戏
  3. Java HashMap工作原理深入探讨
  4. 简述http请求中的同步和异步
  5. request.getRealPath不推荐使用
  6. 程序语言python循环_《python语言程序设计》_第5章_循环
  7. 52. N-Queens II
  8. Python将list存为csv文件
  9. zipsys驱动签名工具_全球首发 300系列主板USB WIN7 64位驱动 SMXDIY
  10. go linux 源码编译环境,修改并编译golang源码
  11. SpringBoot 之Spring Boot Starter依赖包及作用
  12. IOProcess基础知识
  13. 什么是ITSS认证,需要多长时间
  14. 455 periodic strings
  15. python server酱_教你如何使用Python向手机发送通知(IFTTT)
  16. 计算机表格函数最大值操作,excel表格的各函数的基本操作
  17. uniapp 图片涂鸦、画笔 Ba-ImagePaint
  18. hdu2197 本源串
  19. 函数指针的作用:*visit函数
  20. 【Spark】Spark电商数据分析

热门文章

  1. pycharm复制代码出现空格
  2. 【聚沙成塔】Linux环境下NodeJs升级
  3. voip linksys
  4. Java根据模版生成word文档_java+根据word模板生成word+文档
  5. 微信公众上传头像和分享
  6. 机器人专用符文_lol机器人新版符文搭配推荐 s8布里茨新版符文配置攻略
  7. 猫和老鼠服务器正在修复中,猫和老鼠手游:关于29日在游戏中出现的异常问题 是暗改还是bug?...
  8. 【C语言】 《狂野打飞机》初步构想以及进阶 以及防止闪屏
  9. Python黑客攻防(九)编写后门程序
  10. 手游服务器微信互通,9月14日部分服务器数据互通公告