首页 > 其他分享 >版本自动更新

版本自动更新

时间:2023-02-17 15:58:37浏览次数:34  
标签:自动更新 res 程序 updateManager 版本 打开 wx

一、需求说明

目前出现情况:每次发布新版本,如果用户正在使用小程序,都需要让用户将小程序销毁再重新启动,才能使用最新版本的代码
希望当小程序版本更新后,用户打开小程序时自动检查是否有新版本,若有,则提示用户是否更新

二、需求实现
2.1 冷启动和热启动
用户打开小程序时有两种启动方式:

冷启动:若用户首次打开,或小程序销毁后被再次打开,此时需要重新加载,会检查当前最新版本的代码,并运行。
热启动:如果用户已经打开过小程序,且在一定时间内再次打开,此时小程序并未被销毁,并不会检查最新代码。

2.2 热启动时实现版本更新
使用微信官方提供的 api 来检查并更新版本:
一般会将代码写在 app.js 的 onLaunch 函数中,在打开小程序时就执行

App({
  onLaunch() {
    // 判断是否能用这个 api
    if (wx.canIUse("getUpdateManager")) {
      // 创建 updateManager 实例
      const updateManager = wx.getUpdateManager();
      // 检查是否有新版本
      updateManager.onCheckForUpdate(function (res) {
        // hasUpdate 指是否有新版本,为 boolean 值
        if (res.hasUpdate) {
          updateManager.onUpdateReady(function () {
            wx.showModal({
              title: "更新提示",
              content: "新版本已经准备好,是否重启应用?",
              success: function (res) {
                if (res.confirm) {
                  // 强制更新版本
                  updateManager.applyUpdate();
                }
              },
            });
          }),
            updateManager.onUpdateFailed(function () {
              wx.showModal({
                title: "已经有新版本了",
                content: "新版本已经上线啦~,请您删除当前小程序,重新搜索打开",
              });
            });
        }
      });
    } else {
      wx.showModal({
        title: "提示",
        content:
          "当前微信版本过低,无法使用该功能,请升级到最新微信版本后重试。",
      });
    }
  },
});

标签:自动更新,res,程序,updateManager,版本,打开,wx
From: https://www.cnblogs.com/wp-leonard/p/17130428.html

相关文章

  • Spring Cloud +Alibaba+Boot 版本选择方法
     与aliBaBa2021.0.4.0相近的springcloud稳定版本是2021.0.5相应的boot版本是2.6.13 首先确定AliBaba的版本   根据版本分支说明版本说明·alibaba......
  • 根composer.json需要php^8.0,但您的php版本(7.4.27)不满足该要求
    我安装了php7.4,但当我在项目中写入composerinstall时,我看到了以下错误:Rootcomposer.jsonrequiresphp^8.0butyourphpversion(7.4.27)doesnotsatisfythatreq......
  • 清除原项目的git版本信息方法
    拉取别人的项目到本地,想要重新开发,然后自己提交到新的仓库地址,就需要把项目中原来的git信息清除掉1、cd到项目的目录,然后执行gitremotermorigin  删除远程地址,将项......
  • k8s版本1.18升级至1.19.16
    一、master节点升级#1.yum升级kubernetes插件yuminstallkubeadm-1.19.16-0kubelet-1.19.16-0kubectl-1.19.16-0--disableexcludes=kubernetes#2.升级版本到1.19.16......
  • Angular CLI - NodeJS 兼容版本
    |AngularCLI|Angular|NodeJS|TypeScript|RxJSVersion||-----------|----------......
  • 4.drf-版本管理
    根据RESTful规范,后端API中需要体现出版本,DRF中支持5种版本的设置,常见的三种如下1.URL的GET中传递参数在视图类中定义fromrest_framework.versioningimportQuery......
  • 【技术分享】Android系统版本代号一览
    Android系统版本代号一览VersionCodeNameAPI时间11.0R/11302020.0910.0Q/10292019.059.0P/(Pie)282018.088.1O_MR1272017.128.......
  • win10关闭自动更新的方法
    win10关闭自动更新的方法和步骤:一、禁用WindowsUpdate服务1、打开服务项,win+r输入services.msc,或者控制面板-管理工具-服务。2、找到WindowsUpdate项。3、双击......
  • ChatGPT Java客户端,OpenAi的Java版本SDK已完成,请火速接入。
    已经支持OpenAI官方的全部api,有bug欢迎朋友们指出,互相学习。源码地址:https://github.com/Grt1228/chatgpt-java不对之处欢迎指正。注意:由于这个接口:https://platform.o......
  • CV-部署芯片接续-CV全流程部署-TF版本
    CV-部署芯片接续-CV全流程部署-TF版本1单个CNN算子importcv2importnumpyasnpimporttensorflowastfimportosfromtensorflow.python.frameworkimportgrap......