更新记录
1.0.2(2025-11-24) 下载此版本
做了对微信小程序的兼容
1.0.1(2025-11-24) 下载此版本
做了对应的兼容
1.0.0(2025-11-24) 下载此版本
在原来基础上新增4种模板样式
查看更多平台兼容性
云端兼容性
| 阿里云 | 腾讯云 | 支付宝云 |
|---|---|---|
| √ | √ | × |
uni-app(3.6.14)
| Vue2 | Vue3 | Chrome | Safari | app-vue | app-nvue | Android | iOS | 鸿蒙 |
|---|---|---|---|---|---|---|---|---|
| √ | √ | √ | √ | √ | √ | √ | √ | √ |
| 微信小程序 | 支付宝小程序 | 抖音小程序 | 百度小程序 | 快手小程序 | 京东小程序 | 鸿蒙元服务 | QQ小程序 | 飞书小程序 | 快应用-华为 | 快应用-联盟 |
|---|---|---|---|---|---|---|---|---|---|---|
| √ | √ | √ | √ | √ | √ | - | √ | √ | - | - |
uni-app x(3.6.14)
| Chrome | Safari | Android | iOS | 鸿蒙 | 微信小程序 |
|---|---|---|---|---|---|
| √ | √ | √ | √ | √ | √ |
云函数类插件通用教程
使用云函数类插件的前提是:使用HBuilderX 2.9+
fxy-upgrade-app 升级中心
uni-app 应用升级中心客户端插件,支持 wgt 资源包更新和整包更新。
功能特性
- ✅ 支持 wgt 资源包更新(热更新)
- ✅ 支持整包更新(apk/ipa)
- ✅ 支持强制更新和可选更新
- ✅ 支持静默更新(仅 wgt)
- ✅ 自动识别 iOS/Android 平台
- ✅ 支持自定义升级弹窗样式
- ✅ 微信小程序端通过
getUpdateManager检查/应用版本 - ✅ 使用 HTTP API,无需云函数
安装配置
1. 在 pages.json 中配置升级弹窗页面
{
"pages": [
{
"path": "uni_modules/fxy-uni-upgrade-center-app/pages/upgrade-popup",
"style": {
"disableScroll": true,
"app-plus": {
"backgroundColorTop": "transparent",
"background": "transparent",
"titleNView": false,
"scrollIndicator": false,
"popGesture": "none",
"animationType": "fade-in",
"animationDuration": 200
}
}
}
]
}
使用方法
基础使用
在 App.vue 的 onLaunch 或需要检查更新的地方调用:
import checkUpdate from '@/uni_modules/fxy-uni-upgrade-center-app/utils/check-update'
export default {
onLaunch() {
// 检查更新
checkUpdate({
apiUrl: 'https://your-api-domain.com/api/check-version', // 必填:检查版本的 API 地址
method: 'POST' // 可选:请求方法,默认为 POST
}).then(result => {
console.log('检查更新结果:', result)
}).catch(err => {
console.error('检查更新失败:', err)
})
}
}
完整示例
微信小程序端
import checkUpdate from '@/uni_modules/fxy-uni-upgrade-center-app/utils/check-update'
export default {
onShow() {
// #ifdef MP-WEIXIN
checkUpdate({
mp: {
title: '发现新版本',
contents: '1、修复已知问题\n2、优化体验',
showModal: true // 设为 false 可直接静默应用
}
}).then(info => {
console.log('小程序更新结果', info)
}).catch(err => {
console.error('小程序更新检查失败', err)
})
// #endif
}
}
无需接入后台时可以完全省略 apiUrl,只依赖微信的 getUpdateManager;如果想展示自定义更新日志或强制升级标记,可在 mp.mpPayload 中附带业务字段,并提供 apiUrl(或 mpApiUrl)供后端返回更详细的数据。
import checkUpdate from '@/uni_modules/fxy-uni-upgrade-center-app/utils/check-update'
export default {
onLaunch() {
// 延迟检查更新,避免影响启动速度
setTimeout(() => {
checkUpdate({
apiUrl: 'https://your-api-domain.com/api/check-version',
method: 'POST'
}).then(result => {
if (result) {
console.log('发现新版本:', result.version)
} else {
console.log('当前已是最新版本')
}
}).catch(err => {
console.error('检查更新失败:', err.message)
})
}, 2000)
}
}
API 说明
checkUpdate(options)
检查应用更新
参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| apiUrl | String | App端必填 | 检查版本的 API 地址;小程序端可不传,默认只走微信 getUpdateManager |
| method | String | 否 | HTTP 请求方法,默认为 'POST'(App端使用) |
| mp | Object | 否 | 小程序端专用配置(见下) |
mp 配置:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| mpApiUrl | String | 否 | 若需要单独的 MP 接口,可传此字段覆盖 apiUrl |
| mpMethod | String | 否 | MP 端自定义请求方法 |
| mpPayload | Object | 否 | 附加到请求体中的数据(默认附带 platform: 'mp-weixin' 等) |
| title | String | 否 | 更新弹窗标题,默认“更新提示” |
| contents | String | 否 | 弹窗正文,可用于展示更新日志 |
| showModal | Boolean | 否 | 设为 false 时直接应用更新 |
| silent | Boolean | 否 | 同上,设为 true 时跳过弹窗 |
| confirmText | String | 否 | 弹窗确认按钮文字 |
| cancelText | String | 否 | 弹窗取消按钮文字 |
| force | Boolean | 否 | 手动标记是否强制更新(若后端没有返回该字段) |
| forceApply | Boolean | 否 | 强制更新时是否自动应用,默认弹窗提示 |
| autoApply | Boolean | 否 | 非强制更新也自动应用 |
| onCheck | Function | 否 | 监听 getUpdateManager.onCheckForUpdate 回调 |
| onCancel | Function | 否 | 用户取消更新时触发 |
| onError | Function | 否 | 下载失败时回调 |
返回值:
返回 Promise,resolve 时返回更新包信息对象,如果没有更新则返回 null。
更新包信息对象:
{
version: '1.0.2', // 版本号
contents: '更新内容', // 更新日志
type: 'wgt', // 包类型:wgt/apk/ipa
url: 'https://...', // 下载地址
platform: 'and', // 平台:and/iOS
is_mandatory: false, // 是否强制更新
title: '更新日志' // 标题
}
后端 API 接口说明
请求参数
App 端默认会携带: 小程序端默认会携带:
{
action: 'checkVersion',
platform: 'mp-weixin',
appid: '小程序AppId',
mpVersion: '当前基础库标识',
envVersion: 'develop/trial/release'
}
{
action: 'checkVersion',
appid: '应用ID',
appVersion: '应用版本号',
wgtVersion: 'wgt版本号'
}
响应数据格式
新格式(推荐)
{
"version": "1.0.2",
"note": "1、修复登录问题\n2、优化性能\n3、新增功能",
"type": "wgt",
"androidUrl": "https://your.domain.com/pkg/app_1.0.2.wgt",
"iosAppStoreUrl": "https://apps.apple.com/cn/app/your-app/id1234567890",
"force": false
}
字段说明:
| 字段名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| version | String | 是 | 新版本号 |
| note | String | 是 | 更新日志内容,支持换行符 \n |
| type | String | 是 | 包类型:wgt(资源包)/ apk(Android整包)/ ipa(iOS整包) |
| androidUrl | String | 是 | Android 平台下载地址 |
| iosAppStoreUrl | String | 否 | iOS App Store 地址,iOS 平台且非 wgt 时使用 |
| force | Boolean | 否 | 是否强制更新,默认为 false |
兼容旧格式
{
"code": 200,
"message": "成功",
"version": "1.0.2",
"contents": "更新内容",
"type": "wgt",
"url": "https://your.domain.com/pkg/app_1.0.2.wgt",
"platform": "and",
"is_mandatory": false,
"is_silently": false,
"title": "更新日志"
}
响应格式说明:
- 如果后端直接返回数据对象,则直接使用
- 如果后端返回的数据包装在
result字段中(如{ result: {...} }),也会自动解析
更新流程说明
- 检查更新:调用
checkUpdate函数,向后端 API 发送版本检查请求 - 版本对比:后端返回是否有新版本
- 静默更新:如果是 wgt 类型且设置了静默更新,会在后台下载并安装
- 弹窗提示:其他情况会弹出升级弹窗,用户可以选择立即更新或稍后更新
- 下载安装:
- iOS 非 wgt 包:跳转到 App Store
- Android 或 wgt 包:下载后自动安装
- 重启应用:wgt 包安装后需要重启应用生效
自定义升级弹窗
升级弹窗页面位于 pages/upgrade-popup.vue,你可以:
- 修改弹窗样式和布局
- 替换图片资源(在
images目录下) - 自定义按钮文字和提示信息
注意事项
- wgt 更新:打包前请务必将
manifest.json中的版本修改为更高版本 - API 地址:必须提供有效的
apiUrl参数,否则会报错 - 平台识别:代码会自动根据设备平台(iOS/Android)选择对应的下载地址
- 强制更新:设置
force: true时,用户无法取消更新,必须更新后才能继续使用 - 静默更新:仅支持 wgt 资源包,会在后台下载安装,下次启动生效
- 真机调试:真机运行时
appid为固定值 "HBuilder",建议使用本地调试或正式打包后测试
常见问题
Q: 如何判断是否需要更新?
A: 后端 API 应该根据请求中的 appVersion 和 wgtVersion 与服务器最新版本进行对比,如果有新版本则返回更新信息,否则返回空数据或特定标识。
Q: 小程序如何提示用户更新?
A: 项目内封装了 getUpdateManager,在下载完成后可选择静默应用或通过 uni.showModal 提示用户。若后端返回 force / is_mandatory 字段,则弹窗会自动隐藏取消按钮,实现强制更新。
Q: iOS 如何更新?
A:
- 如果是 wgt 资源包,可以直接下载安装
- 如果是整包(ipa),需要跳转到 App Store,使用
iosAppStoreUrl字段
Q: 如何实现静默更新?
A: 在旧格式中使用 is_silently: true,仅支持 wgt 类型。新格式暂不支持静默更新,可以通过后端返回旧格式来实现。
Q: 更新失败怎么办?
A: 代码会自动处理下载和安装失败的情况,并提示用户。如果安装失败,用户可以重新下载。
更新日志
v1.0.0
- 初始版本
- 支持 wgt 和整包更新
- 支持强制更新和可选更新
- 移除云函数依赖,使用 HTTP API
- 支持新的数据格式,自动识别平台

收藏人数:
下载插件并导入HBuilderX
赞赏(0)
下载 138
赞赏 0
下载 33952
赞赏 153
赞赏
京公网安备:11010802035340号