UpdatePlugin
简介
一个好看又好用的版本更新的原生插件,支持整包、热更新、国际化、高度定制,内部版本管理、错误提示、国际化,简化版本更新流程,无需做热更新整包判断及版本比较等琐事,只需请求后台接口替换下参数即可完成版本更新
预览
引用
// 引用插件
const updateModule = uni.requireNativePlugin("Chen-Update")
checkUpdate(OBJECT,CACLLBACK)
检查版本更新
OBJECT参数说明
| 参数 | 类型 | 必填 | 说明 | 平台差异 |
|---|---|---|---|---|
| i18n | String | 否 | 国际化,目前仅支持中(zh)英文(en)俩种语言,默认中文(zh) | |
| version | String | 是 | 版本更新的版本号(例如:1.0.0) | |
| versionInfo | String | 是 | 版本更新的内容 | |
| versionInfoEn | String | 否 | 版本更新的内容(英文) | |
| title | String | 是 | 版本更新的标题 | |
| titleEn | String | 否 | 版本更新的标题(英文) | |
| downloadUrl | String | 是 | 版本更新的下载包地址或下载链接 | iOS填写苹果商店的链接地址 |
| updateStatus | Int | 否 | 版本更新的更新方式,1:正常更新(默认);2:强制更新;3:静默更新(需要root权限) | iOS不支持静默更新 |
| isIgnorable | Boolean | 否 | 是否可忽略此版本,忽略后该版本不会再提示更新(强制更新时无效) | 仅Android |
| apkSize | int | 否 | 版本更新的内容大小(包大小乘1024) | 仅Android |
| apkMd5 | String | 否 | 版本更新的文件MD5效验值,保证文件唯一性,避免重复下载(在线MD5取下值或不填) | 仅Android |
| topImgBg | String | 否 | 自定义更新弹窗顶部图片 | |
| themeColor | String | 否 | 主题色(按钮、下载进度条颜色) | |
| btnText | String | 否 | 按钮文本 | |
| btnTextEn | String | 否 | 按钮文本(英文) | |
| marketList | Array | 否 | 发行的应用市场列表 | 仅Android |
| customAction | Boolean | 否 | 自定义事件,点击按钮回调自行逻辑操作(热更新或第三方发布页更新等其他场景) | 仅iOS |
CACLLBACK参数说明
| 参数 | 类型 | 说明 |
|---|---|---|
| success | Boolean | 操作状态值 |
| data | File | 热更新wgt包文件(仅在wgt更新时返回) |
| code | Int | 状态码(400:参数有误,500:安装失败,200:安装成功,0:暂无更新,10000:自定义事件) |
| msg | String | 返回信息 |
示例
let options = {
i18n: 'zh',
title: "发现新版本",
titleEn: "Discover a new version",
version: '1.0.1',
versionInfo: '\r\n1、修复部分已知问题。\n2、优化了部分组件功能。\n3、新增更多使用演示。',
versionInfoEn: "\r\n1、Fix some known problems.\n2、The functions of some components are optimized.\n3、Add more usage demonstrations.",
// 该下载包是1.0.0安装完成后还是能通过更新检查
downloadUrl: 'https://vkceyugu.cdn.bspapp.com/VKCEYUGU-ed59a1a4-e5db-43ec-a32a-2095ddab07e2/57ae7847-a0ac-477f-b7f3-f54941ee4a00.wgt',
// ios苹果商店地址
// downloadUrl: "https://apps.apple.com/cn/app/%E5%BE%AE%E4%BF%A1/id836500024?mt=12",
updateStatus: 1,
// isIgnorable: true,
topImage: '/static/bg_update_top.png',
themeColor: '#ffa500',
btnText: "立即更新",
btnTextEn: "Update now",
apkSize: 12333, // apk安装包大小,不填不显示新版本包大小
// apkMd5: 'xxxxxx', // 此值不可乱填哟,apk真实md5值,安装时会对比确保app没有被攥改以及不重复下载,乱填会导致安装失败
// 跳转应用市场(会检测手机是否有安装这些应用市场,有按优先级跳转应用市场)
// marketList: ['com.huawei.market','com.xiaomi.market']
// customAction: "true" // 自定义事件,为兼容iOS其他场景
}
updateModule.checkUpdate(options,(res) => {
if (res.success && res.data){
plus.runtime.install(res.data.absolutePath, {
force: false
}, function() {
// 解决热更新不更新包信息问题做内部比较简化使用
updateModule.updateComplete()
//进行重新启动;
plus.runtime.restart();
}, (e) => {
console.log(e)
});
} else {
uni.showToast({
title:res.msg,
icon: 'none'
})
}
})