uniapp 实现自定义 app 更新功能

前言

uniapp app 作为常用的软件,更新功能更是不能少的。

方式一:

  uniapp 官方提供了一个检测和自动更新app功能的插件 uni-upgrade-center-app
相关的文档连接 APP升级中心

方式二(简易版的):

  之前自己由于一些原因,不太想用官方提供的,就想其它的方式。后来通过查看uniapp 的 升级中心的 源码发现,对于一些简单的更新需求完全可以自己实现。

  • 步骤一:在自己的管理后台建立一个页面,可以配置 APP 的新旧版本号,下载链接等并进行展示。

  • 步骤二:在APP端获取后台的配置,并进行比对

      <!-- 获取配置信息 -->
      getAppMessage() {
        request({
          url: reuqireUrl,
          method: 'get'
        }).then(res => {
          if (
            typeof plus !== 'undefined' &&
            plus.runtime.version < res.data.new_version_info
          ) {
            this.myCheckLocalStoragePackage(res.new_version_href)
            this.tipDialogVisible = true
          }
        })
      }
    
      <!-- 下载内容 -->
      myCheckLocalStoragePackage(url) {
        uni.downloadFile({
          url: url,
          success: res => {
            if (res.statusCode == 200) {
              this.downloadUrl = res.tempFilePath
              this.installPackage()
            }
          }
        })
      },
    
      <!-- 进行更新 -->
      installPackage() {
        plus.runtime.install(this.downloadUrl, {
      			force: false
        }, async res => {
          const localFilePathRecord = uni.getStorageSync(localFilePathKey)
          uni.setStorageSync(localFilePathKey, {
            ...localFilePathRecord,
            installed: true
          })
        }, async err => {
          uni.showModal({
            title: '更新失败,请重新登录',
            content: '请检查网络等原因',
            showCancel: false
          });
        })
      },
    
  • 这是比较简单的自定义更新,更新弹窗这些都可以自己设计,源码还未看完,后续更新。

posted @   攻城Alone  阅读(11)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
· 使用C#创建一个MCP客户端
点击右上角即可分享
微信分享提示