更新记录
0.1.0(2026-11-05) 下载此版本
0.1.0
- 首个版本,功能可用
平台兼容性
pk-update — APP 升级更新套件
纯 JS 实现的 APP 版本升级:wgt 热更新 / 整包下载 / 断点续传 / 强制更新 / 静默更新 / 下载校验 / 问题反馈。 零原生插件、免自定义基座、无新增权限、不绑定包名。 基于竞品(1371 / 1643 / 5141)共 206 条真实用户评价逆向设计,逐条规避历史踩坑。
立即跑起来(推荐)
- 在线文档 + 在线 Demo + 一键导入:https://plugins.cnajiu.cn/public/pk-update.html (功能说明、可交互演示、下载示例工程按钮,都在这一页)
- 完整可运行示例工程:
example/目录(已内置uni_modules/pk-update,HBuilderX 导入即可运行) - 三步接入:见下方「5 分钟接入」;或直接看示例工程
example/README.md
注意:本仓库不再维护顶层零散的
demo/,统一使用example/这个完整 HBuilderX 工程。
为什么选它
| 竞品的坑 | 我们的解法 |
|---|---|
| 原生插件弹更新框申请"拨打电话"权限 → 应用市场拒审(1371 差评) | 纯 JS,manifest 无需新增任何权限 |
| "看不懂怎么用"(1643 一星来源) | 本文档 5 分钟接入 + 完整 demo + 参数表 |
| 下载不完整就安装 →"安装包损坏"(1643/5141 高频) | size 强制校验 + zip 魔数校验 + 自动重试 3 次 |
| "一直提示更新"(5141) | 服务端判定 + 客户端双版本防御性复核 |
| 横屏弹窗溢出 / 盖不住 tabbar(5141) | vw/vh 自适应 + hide-tab-bar |
| 强更不显示更新说明(1643) | 强更也展示 notes,仅隐藏"以后再说" |
| wgt 与 uni 编译器版本不一致崩溃 | minUniVersion 检查,不满足自动降级整包 |
| SaaS 后台跑路 / 免费额度(5141) | 自建接口协议(server-protocol.md),数据在自己手里 |
| 换包名要重新买(1371) | 源码交付不绑定包名 |
5 分钟接入
1. 导入
HBuilderX → 项目 → 右键 uni_modules → 从本地导入 uni_modules/pk-update(或直接拷贝该目录)。
2. 初始化(App.vue)
import pkUpdate from '@/uni_modules/pk-update/js_sdk/index.js'
onLaunch() {
pkUpdate.init() // 上报默认关闭,需要时 init({ enabled: true })
}
3. 检查更新 + 弹窗(任意页面)
<template>
<pk-update-modal v-if="updateInfo" :info="updateInfo" @later="updateInfo = null" />
</template>
<script>
import { checkUpdate } from '@/uni_modules/pk-update/js_sdk/index.js'
import pkUpdateModal from '@/uni_modules/pk-update/components/pk-update-modal/pk-update-modal.vue'
export default {
components: { pkUpdateModal },
data: () => ({ updateInfo: null }),
async onShow() {
const info = await checkUpdate({ apiUrl: 'https://你的服务器/update/check' })
if (info) this.updateInfo = info // null = 已是最新
}
}
</script>
4. 本地跑通(不用写服务端)
cd example/demo
node mock-server.js # 电脑上启动 mock 升级服务(端口 8092)
# 示例工程演示页填 http://<电脑局域网IP>:8092/update/check
完整工程导入与联调步骤见
example/README.md。
API
checkUpdate(opt) → Promise<UpdateInfo|null>
| 参数 | 必填 | 说明 |
|---|---|---|
| apiUrl | ✅ | 检查接口地址,协议见 docs/server-protocol.md |
| platform | - | 默认自动判断 android/ios |
| extra | - | 附加参数(渠道号等),原样透传给服务端 |
| timeout | - | 请求超时 ms,默认 10000 |
返回 null = 已是最新;UpdateInfo 字段:hasUpdate / updateType(wgt|apk|appstore) / version / notes / force / silent / url / size / minUniVersion / needFullUpdate。
applyUpdate(info, handlers) 执行更新
handlers: onProgress(pct) onDownloaded() onInstalled() onFail(err)
silentUpdate(info) 静默更新
无 UI 后台下载,安装后下次启动生效(force 优先于 silent)。
pkUpdate.init(opts) 初始化反馈
opts: endpoint(默认 plugins.cnajiu.cn)/ appKey / enabled=false 可整体关闭上报。
演示
- 在线 Demo(网页直接看效果):https://plugins.cnajiu.cn/public/pk-update.html
example/pages/update-demo/update-demo.vue— 可直接跑的演示页(检查更新/静默/查看本机版本/日志)example/demo/mock-server.js— 零依赖 mock 升级服务
用户侧异常(检查失败/下载失败/安装失败)与主动反馈统一采集(上报默认关闭): 错误码表:
| 错误码 | 含义 |
|---|---|
| E-CK-00/01/02/03 | 检查更新:缺参/异常/HTTP错/网络错 |
| E-DL-00/01/02 | 下载:环境不支持/失败/大小不符(自动重试) |
| E-IN-00/01/02/03 | 安装:环境/校验失败/安装失败/未知来源权限 |
兼容性
见 docs/compatibility.md(多端矩阵 + 厂商专项 + 真机回归清单)。 仅 App 端生效(Android/iOS);H5 与小程序不适用。

收藏人数:
下载插件并导入HBuilderX
下载插件ZIP
赞赏(0)
下载 3
赞赏 0
下载 12744412
赞赏 1959
赞赏
京公网安备:11010802035340号