提交 245b664a 编写于 作者: D DCloud_LXH

feat(upgrade-center): 0.9.0

上级 a50d5530
......@@ -17,8 +17,6 @@ App升级中心 uni-upgrade-center,提供了 App 的版本更新服务。包
- 数据库遵循 [opendb](https://uniapp.dcloud.net.cn/uniCloud/opendb.html) 规范
- **关于应用转让后升级中心(uni-upgrade-center)的使用问题** [详情](https://ask.dcloud.net.cn/article/40112)
从 uni-upgrade-center `v0.7.0` 版本起,开始支持uni-app x。
为了一套代码同时兼容uni-app和uni-app x,升级中心原本的 js 文件改为了 ts 文件。如果开发者的项目下未使用ts,那么需要增加ts编译。HBuilderX项目会自动加载ts编译器,cli项目则需要自己手动配置。
### 为什么需要升级中心?
......@@ -180,16 +178,18 @@ App升级中心 uni-upgrade-center,提供了 App 的版本更新服务。包
<pre v-pre="" data-lang="">
<code class="lang-" style="padding:0">
┌─uniCloud 云空间目录,在 uni-upgrade-center-app 组件中为空,占位使用
│─components 符合 easycom 组件规范的组件目录
│ └─uni-upgrade-center-app
│ └─uni-upgrade-center-app.uvue uni-app x 项目中要使用到的升级中心弹窗组件,如果需要自定义弹窗样式,可以修改此组件
<s>│─components</s>(0.9.0 版本起删除,请使用 `pages/uni-app-x/upgrade-popup.vue`)
<s>│ └─uni-upgrade-center-app</s>(0.9.0 版本起删除,请使用 `pages/uni-app-x/upgrade-popup.vue`)
<s>│ └─uni-upgrade-center-app.uvue</s>(0.9.0 版本起删除,请使用 `pages/uni-app-x/upgrade-popup.vue`)
├─pages 页面文件存放的目录
│ ├─uni-app-x
│ │ └─upgrade-popup.vue uni-app x 项目中要使用到的升级中心弹窗页面,如果需要自定义弹窗样式,可以修改此页面,使用请看<a href="https://doc.dcloud.net.cn/uni-app-x/api/dialog-page.html">dialogPage</a>
│ └─upgrade-popup.vue uni-app 项目中要使用到的升级中心页面,如果需要自定义样式,可以修改此页面
├─static 存放升级中心引用的静态资源(图片)的目录,如需自定义样式,可以替换此目录下的图片
├─utils 存放升级中心引用的工具函数的目录
│ ├─call-check-version.ts 升级中心请求云端函数方法,调用 uni-upgrade-center 云函数,获取 App 版本信息
│ ├─check-update.ts 调用升级中心方法,检查更新,并根据结果判断是否显示更新弹框
│ └─utils.uts uni-app x 项目中要使用到到工具函数,openSchema 为打开应用外部链接方法
│ └─check-update-nvue.js 由于 uni-app 项目 `nvue` 页面不支持 ts ,因此调用检查更新函数在这里导出
├─changelog.md uni-upgrade-center-app 更新日志
├─package.json uni-upgrade-center-app 插件信息日志
└─readme.md uni-upgrade-center-app 说明文档
......@@ -252,7 +252,25 @@ App升级中心 uni-upgrade-center,提供了 App 的版本更新服务。包
2. 默认使用当前绑定的服务空间,如果要请求其他服务空间,可以使用其他服务空间的 `callFunction`[详情](https://uniapp.dcloud.io/uniCloud/cf-functions.html#call-by-function-cross-space)
3. **注:** uni-app 的 vue2 模式不支持在 nvue 页面中使用 ts,请引入用插件根目录 `utils/check-update-nvue.js` 文件
7. 升级弹框可自行编写,也可以使用`uni.showModal`,或使用现有的升级弹框样式,如果不满足UI需求请自行替换 `static` 目录下的资源文件。在`utils/check-update.ts`中都有实例。
```js
import checkUpdate from '@/uni_modules/uni-upgrade-center-app/utils/check-update'
```
7. 在需要调用的 **页面** 中(一般在首页加载完成后调用或设置页面检查更新按钮调用)执行 `checkUpdate` 方法,比如在 `onReady` 生命周期中( **注:** 因为是组件所以一定要保证组件加载完毕),以下为完整使用示例:
```js
import checkUpdate from '@/uni_modules/uni-upgrade-center-app/utils/check-update'
// ...
export default {
// ...
onReady() {
checkUpdate()
}
// ...
}
```
8. 升级弹框可自行编写,也可以使用`uni.showModal`,或使用现有的升级弹框样式,如果不满足UI需求请自行替换 `static` 目录下的资源文件。在`utils/check-update.ts`中都有实例。
**注意** 使用wgt更新,打包前请务必将 manifest.json 中的版本名称修改为更高版本。(请使用类似 1.0.0 以 `.` 分隔的多段式格式)
......@@ -272,16 +290,18 @@ App升级中心 uni-upgrade-center,提供了 App 的版本更新服务。包
- 插件版本 `>= 0.6.0`,依赖 `uni-admin 1.9.3+``uni-upgrade-center 云函数`,插件不再单独提供云函数,可以跳过此步骤
- 插件版本 `<= 0.6.0`,找到`/uni_modules/uni-upgrade-center-app/uniCloud/cloudfunctions/check-version`,右键上传部署
5. 升级中心在 uni-app x 端是 `easycom 组件` 可直接使用,无需在页面导入注册。在需要显示升级弹窗的页面直接使用组件即可(升级中心弹出时会调用 api 隐藏 tabbar,在关闭时会调用调用 api 显示 tabbar)
5. 如果是uni-app,需在`pages.json`中添加页面路径。**注:请不要设置为pages.json中第一项**
> 注意组件的 `ref` 属性
```html
<!-- 该组件的 @close 方法,会在关闭弹窗的时候调用 -->
<uni-upgrade-center-app ref="upgradePopup" @close="upgradePopupClose" />
```json
"pages": [
// ……其他页面配置
{
"path" : "uni_modules/uni-upgrade-center-app/pages/uni-app-x/upgrade-popup"
}
]
```
6.`script` 标签内顶部引入 `checkVersion` 方法
6.`script` 标签内顶部引入 `checkUpdate` 方法
```js
import checkUpdate from '@/uni_modules/uni-upgrade-center-app/utils/check-update'
......@@ -289,33 +309,23 @@ App升级中心 uni-upgrade-center,提供了 App 的版本更新服务。包
7. 在需要调用的 **页面** 中(一般在首页加载完成后调用或设置页面检查更新按钮调用)执行 `checkUpdate` 方法,比如在 `onReady` 生命周期中( **注:** 因为是组件所以一定要保证组件加载完毕),以下为完整使用示例:
```html
<template>
<view>
<!-- 页面其他内容 -->
<uni-upgrade-center-app ref="upgradePopup" @close="upgradePopupClose" />
</view>
</template>
<script>
import checkUpdate from '@/uni_modules/uni-upgrade-center-app/utils/check-update'
```js
import checkUpdate from '@/uni_modules/uni-upgrade-center-app/utils/check-update'
// ...
export default {
// ...
export default {
// ...
onReady() {
// 此处的 UniUpgradeCenterAppComponentPublicInstance 类型是 easycom 组件使用约定,详见:https://doc.dcloud.net.cn/uni-app-x/component/#method-easycom
// 此处的 'upgradePopup' 要和组件的 ref 属性一致
checkUpdate(this.$refs['upgradePopup'] as UniUpgradeCenterAppComponentPublicInstance)
}
// ...
onReady() {
checkUpdate()
}
</script>
// ...
}
```
8. 当你打开调用升级中心组件的页面就会检查更新,如有更新就出弹窗。也可以在其他页面或者组件中使用
**注意** 在 uni-app x 的 app-Android 端没有 wgt 更新,也不会检测到 wgt 包的更新
**更新下载安装`check-update.ts`**
#### 更新下载安装`check-update.ts`
> 该函数在utils目录下
......@@ -323,9 +333,7 @@ App升级中心 uni-upgrade-center,提供了 App 的版本更新服务。包
2. 如果是 iOS,则会直接打开AppStore的链接
3. 其他情况:
- `uni-app`:会将检查更新云函数返回的结果保存在localStorage中,并跳转进入`upgrade-popup.vue`打开更新弹框
- `uni-app x`:会将检查更新云函数返回的结果传递给 `\uni_modules\uni-upgrade-center-app\components\uni-upgrade-center-app\uni-upgrade-center-app.uvue` 组件的 `show` 方法,修改组件的显示状态,显示更新弹框
3. 会将检查更新云函数返回的结果保存在localStorage中,并跳转进入`upgrade-popup.vue`打开更新弹框
**Tips**
......@@ -333,6 +341,14 @@ App升级中心 uni-upgrade-center,提供了 App 的版本更新服务。包
- 使用多段式版本格式(如:"3.0.0.0.0.1.0.1", "3.0.0.0.0.1")。如果不满足对比规则,请自行修改。
- 如果修改,请将*pages/upgrade-popup.vue**compare*函数一并修改
### 版本说明
> 此处版本与 [gitee](https://gitee.com/dcloud/uni-upgrade-center) 的 tag 和 uni-upgrade-center-app 的版本相对应
- 从 uni-upgrade-center `v0.7.0` 版本起,开始支持uni-app x。
- `v0.8.5` 之后的版本(如 0.9.0)将不再支持 HBuilderX 4.31 之前的版本,如需使用请升级 HBuilderX 至 4.31 以上版本。
- `v0.9.0` 版本起在 uni-app x 上使用 [dialogPage](https://doc.dcloud.net.cn/uni-app-x/api/dialog-page.html) 实现,效果更好
### 费用评测@upgrade-center-fee
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册