uni-app uni-upgrade-center插件问题 App不展示进度条 插件已存在

发布于 1周前 作者 songsunli 来自 Uni-App

uni-app uni-upgrade-center插件问题 App不展示进度条 插件已存在

信息类别 详情
产品分类 uniapp/App
PC开发环境 Windows
PC操作系统版本 19045.3803
HBuilderX类型 正式
HBuilderX版本 3.98
手机系统 Android
手机系统版本 Android 10
手机厂商 华为
手机机型 荣耀30s
页面类型 vue
vue版本 vue2
打包方式 云端
项目创建方式 HBuilderX

示例代码:

import checkUpdate from '@/uni_modules/uni-upgrade-center-app/utils/check-update'  
调用的方法  
checkUpdate() {  
                uni.showLoading({  
                    title: '正在检查...'  
                });  

                checkUpdate().then(res => {  
                    //0 当前版本已经是最新的,不需要更新;101    wgt更新;102   整包更新  
                    console.log("checkUpdate: " + JSON.stringify(res));  
                    if(res.code===0){//当前版本已经是最新的,不需要更新  
                        uni.showToast({  
                            title:res.message,  
                            icon:'none'  
                        })  
                    }  
                }).catch(err => {  
                    console.log('err: ', err);  
                }).finally(()=>{  
                    uni.hideLoading()  
                })  
            }

操作步骤:

  • 点击立即下载更新按钮,弹框关闭,系统顶部显示下载进度,会自动跳往安装界面

预期结果:

  • 弹框上显示进度条

实际结果:

  • 弹框上关闭,只手机系统后台显示进度条

bug描述:

uni-upgrade-center - App不展示进度条,点击弹框立即下载按钮,不展示进度条,弹框里面关闭,不过系统后台显示正在下载中

App下载地址或H5网址:

https://mp-45dc8365-3cd9-4fd5-975b-a8af43485cab.cdn.bspapp.com/cloudstorage/e95e2566-068b-41b0-8382-c6679439c505.apk


6 回复

请问解决了吗,遇到相同问题


找到原因了,uni-admin中设置为强制更新才有进度条

回复 1***@qq.com: 啊这,但是我看官方示例也没说要强制更新

回复 1***@qq.com: 好吧,以后官方示例我得一个个点进去看一下

新的逻辑是只有在强制更新的时候弹窗才不会关闭,在弹窗上显示进度条。
如果不是强制更新的话,会关闭弹窗,在通知中心中显示进度条,不影响用户操作

在使用 uni-upgrade-center 插件时,如果 App 不展示进度条,可能是由于以下几个原因导致的。你可以按照以下步骤进行排查和解决:

1. 确认插件已正确安装和配置

确保你已经按照官方文档正确安装和配置了 uni-upgrade-center 插件。检查 manifest.json 文件中是否已经正确引入了插件,并且配置了相关的升级参数。

2. 检查网络请求

确保 App 能够正常访问升级服务器,并且能够获取到升级信息。你可以通过抓包工具(如 Charles 或 Fiddler)来检查网络请求是否正常,确保服务器返回了正确的升级信息。

3. 检查升级信息

确保服务器返回的升级信息中包含 downloadUrlversion 等必要字段。如果这些字段缺失或格式不正确,可能会导致进度条无法展示。

4. 检查进度条代码

确保你在 App 中正确调用了 uni-upgrade-center 提供的 API 来展示进度条。通常,你需要监听下载进度并更新 UI。以下是一个简单的示例代码:

uni.downloadFile({
  url: 'https://example.com/your-app.apk',
  success: (res) => {
    if (res.statusCode === 200) {
      // 下载成功,安装 APK
      uni.installApk({
        filePath: res.tempFilePath,
        success: () => {
          console.log('安装成功');
        },
        fail: (err) => {
          console.log('安装失败', err);
        }
      });
    }
  },
  fail: (err) => {
    console.log('下载失败', err);
  },
  complete: (res) => {
    console.log('下载完成', res);
  }
});

// 监听下载进度
uni.onDownloadProgress((res) => {
  console.log('下载进度', res.progress);
  // 更新 UI 中的进度条
  this.setData({
    progress: res.progress
  });
});
回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!