uni-app uni-upgrade-center插件问题 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网址:
请问解决了吗,遇到相同问题
找到原因了,uni-admin中设置为强制更新才有进度条
回复 1***@qq.com: 啊这,但是我看官方示例也没说要强制更新
回复 1***@qq.com: 好吧,以后官方示例我得一个个点进去看一下
新的逻辑是只有在强制更新的时候弹窗才不会关闭,在弹窗上显示进度条。
如果不是强制更新的话,会关闭弹窗,在通知中心中显示进度条,不影响用户操作
在使用 uni-upgrade-center
插件时,如果 App 不展示进度条,可能是由于以下几个原因导致的。你可以按照以下步骤进行排查和解决:
1. 确认插件已正确安装和配置
确保你已经按照官方文档正确安装和配置了 uni-upgrade-center
插件。检查 manifest.json
文件中是否已经正确引入了插件,并且配置了相关的升级参数。
2. 检查网络请求
确保 App 能够正常访问升级服务器,并且能够获取到升级信息。你可以通过抓包工具(如 Charles 或 Fiddler)来检查网络请求是否正常,确保服务器返回了正确的升级信息。
3. 检查升级信息
确保服务器返回的升级信息中包含 downloadUrl
和 version
等必要字段。如果这些字段缺失或格式不正确,可能会导致进度条无法展示。
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
});
});