UNPKG

fxyuni-update-check

Version:

跨端(微信小程序 & App)的一体化版本更新检查工具,用于uni-app项目。支持wgt热更新、APK整包更新、iOS商店跳转以及小程序原生更新。

101 lines (75 loc) 2.97 kB
# fxyuni-update-check 跨端(**uni-app****App(原生)****微信小程序**)的一体化 **版本更新检查** 工具: - App:支持 **WGT热更新****APK整包更新****iOS App Store 跳转**- 微信小程序:基于 **`wx.getUpdateManager`** 的内置更新流程; - 可配置更新接口、更新文案、进度回调等; - 无侵入,**一行调用**> 适用于基于 `uni-app` 的项目。 --- ## 安装 ```bash npm i fxyuni-update-check # 或 pnpm add fxyuni-update-check # 或 yarn add fxyuni-update-check ``` ## 快速使用 ```js // 在 App.vue 的 onLaunch 或首页入口调用 import { checkUpdate } from 'fxyuni-update-check' checkUpdate({ // 仅 App 端需要:你的服务端更新配置地址(JSON) url: 'https://your.domain.com/update.json', // 可选:自定义提示文案 title: '发现新版本', content: '是否立即更新?', // 可选:下载进度回调(App端) onProgress: (progress) => { // progress: 0~100 console.log('下载进度', progress) }, // 可选:自定义弹窗(返回 true 表示你接管弹窗) confirmBeforeUpdate: async (serverMeta) => { // return true 表示你已经主动处理了弹窗,内部不再弹默认弹窗 return false } }) ``` ## 服务端 `update.json` 示例 ```json { "version": "1.0.2", "note": "修复若干已知问题,提升稳定性", "type": "wgt", "urlWgt": "https://your.domain.com/pkg/app_1.0.2.wgt", "urlApk": "https://your.domain.com/pkg/app_1.0.2.apk", "iosAppStoreUrl": "https://apps.apple.com/cn/app/your-app/id1234567890", "force": false } ``` - `version`:服务端最新版本号(如 `1.0.2`)。 - `note`:更新说明。 - `type``wgt`(热更新)或 `apk`(整包)。 - `urlWgt`:WGT 包下载地址(当 `type=wgt` 时必填)。 - `urlApk`:APK 下载地址(当 `type=apk` 时 Android 使用)。 - `iosAppStoreUrl`:iOS 使用的应用商店地址(**iOS 不支持 wgt/apk 安装**)。 - `force`:是否强制更新(可选)。 > iOS 平台如果配置了 `iosAppStoreUrl`,将跳转到 App Store;若未配置,则只提示有新版本。 ## API ### `checkUpdate(options)` **参数**: | 字段 | 类型 | 必填 | 说明 | | --- | --- | --- | --- | | `url` | `string` | App端建议 | 更新配置接口地址,返回上面的 JSON | | `title` | `string` | 否 | 默认弹窗标题 | | `content` | `string` | 否 | 默认弹窗内容 | | `onProgress` | `(n: number) => void` | 否 | App 端下载进度回调(0~100) | | `confirmBeforeUpdate` | `(meta: UpdateMeta) => Promise<boolean> \| boolean` | 否 | 在默认弹窗前触发,返回 `true` 表示你已接管弹窗 | **返回**`Promise<void>` ## 兼容性说明 - **App(原生)**:通过 `plus.runtime`/`plus.downloader` 实现; - **微信小程序**:通过 `wx.getUpdateManager` 实现; - **H5**:默认不做任何动作。 ## License MIT