Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
梦想橡皮擦
uni-starter
提交
db11835d
U
uni-starter
项目概览
梦想橡皮擦
/
uni-starter
与 Fork 源项目一致
Fork自
DCloud / uni-starter
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
U
uni-starter
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
db11835d
编写于
4月 15, 2021
作者:
芊
芊里
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
检查更新完成
上级
e89739ed
变更
7
显示空白变更内容
内联
并排
Showing
7 changed file
with
178 addition
and
95 deletion
+178
-95
common/appInit.js
common/appInit.js
+19
-7
pages/ucenter/ucenter.vue
pages/ucenter/ucenter.vue
+30
-4
uni_modules/uni-upgrade-center-app/changelog.md
uni_modules/uni-upgrade-center-app/changelog.md
+4
-0
uni_modules/uni-upgrade-center-app/package.json
uni_modules/uni-upgrade-center-app/package.json
+1
-1
uni_modules/uni-upgrade-center-app/readme.md
uni_modules/uni-upgrade-center-app/readme.md
+36
-15
uni_modules/uni-upgrade-center-app/utils/call-check-version.js
...odules/uni-upgrade-center-app/utils/call-check-version.js
+29
-0
uni_modules/uni-upgrade-center-app/utils/check-update.js
uni_modules/uni-upgrade-center-app/utils/check-update.js
+59
-68
未找到文件。
common/appInit.js
浏览文件 @
db11835d
// #ifdef APP-PLUS
import
checkUpdate
from
'
@/uni_modules/uni-upgrade-center-app/utils/check-update
'
;
import
callCheckVersion
from
'
@/uni_modules/uni-upgrade-center-app/utils/call-check-version
'
;
// #endif
export
default
function
()
{
// 初始化appVersion
...
...
@@ -21,16 +24,25 @@ function initAppVersion() {
// #ifdef APP-PLUS
let
appid
=
plus
.
runtime
.
appid
;
plus
.
runtime
.
getProperty
(
appid
,
(
wgtInfo
)
=>
{
wgtInfo
.
version
let
appVersion
=
plus
.
runtime
;
let
currentVersion
=
appVersion
.
versionCode
>
wgtInfo
.
versionCode
?
appVersion
:
wgtInfo
;
getApp
({
allowDefault
:
true
}).
appVersion
=
{
...
currentVersion
,
appid
,
version
:
appVersion
,
wgtVersion
:
wgtInfo
,
finall
:
appVersion
.
versionCode
>
wgtInfo
.
versionCode
?
appVersion
:
wgtInfo
hasNew
:
true
}
// 检查更新小红点
callCheckVersion
()
.
then
(
res
=>
{
if
(
res
.
result
.
code
>
0
){
// 有新版本
getApp
({
allowDefault
:
true
}).
appVersion
.
hasNew
=
true
;
}
})
});
// #endif
}
...
...
pages/ucenter/ucenter.vue
浏览文件 @
db11835d
...
...
@@ -20,7 +20,12 @@
:clickable=
"true"
:to=
"item.to"
@
click=
"ucenterListClick(item)"
></uni-list-item>
>
<view
v-if=
"item.showBadge"
class=
"item-footer"
slot=
"footer"
>
<text
class=
"item-footer-text"
>
{{
item
.
rightText
}}
</text>
<view
class=
"item-footer-badge"
></view>
</view>
</uni-list-item>
</uni-list>
</view>
</
template
>
...
...
@@ -74,8 +79,9 @@
//#ifdef APP-PLUS
{
title
:
'
检查更新
'
,
rightText
:
`V
${
getApp
().
appVersion
.
finall
.
version
}
_
${
getApp
().
appVersion
.
finall
.
versionCode
}
`
,
event
:
'
checkVersion
'
rightText
:
`V
${
getApp
().
appVersion
.
version
}
_
${
getApp
().
appVersion
.
versionCode
}
`
,
event
:
'
checkVersion
'
,
showBadge
:
true
}
//#endif
],
...
...
@@ -251,5 +257,25 @@
transform
:
scaleY
(
0.2
);
}
/* #endif */
.item-footer
{
flex-direction
:
row
;
align-items
:
center
;
}
.item-footer-text
{
color
:
#999
;
font-size
:
24
rpx
;
padding-right
:
10
rpx
;
}
.item-footer-badge
{
width
:
20
rpx
;
height
:
20
rpx
;
/* #ifndef APP-NVUE */
border-radius
:
50%
;
/* #endif */
/* #ifdef APP-NVUE */
border-radius
:
10
rpx
;
/* #endif */
background-color
:
#DD524D
;
}
</
style
>
uni_modules/uni-upgrade-center-app/changelog.md
浏览文件 @
db11835d
## 0.1.4(2021-04-13)
-
更新文档。明确云函数调用结果
## 0.1.3(2021-04-13)
-
解耦云函数与弹框处理。utils中新增 call-check-version.js,可用于单独检测是否有更新
## 0.1.2(2021-04-07)
-
更新版本对比函数 compare
## 0.1.1(2021-04-07)
...
...
uni_modules/uni-upgrade-center-app/package.json
浏览文件 @
db11835d
{
"id"
:
"uni-upgrade-center-app"
,
"displayName"
:
"升级中心 uni-upgrade-center - App"
,
"version"
:
"0.1.
2
"
,
"version"
:
"0.1.
4
"
,
"description"
:
"升级中心前台检查更新"
,
"keywords"
:
[
"uniCloud"
,
...
...
uni_modules/uni-upgrade-center-app/readme.md
浏览文件 @
db11835d
...
...
@@ -71,11 +71,18 @@
6.
检查更新前端使用示例:
`uni_modules/uni-upgrade-center-app/utils/check-update.js`
,在要检查更新的地方导入调用即可
**Tips**
1.
`check-version`
云函数内部有版本对比函数(compare)。
-
使用多段式版本格式(如:"3.0.0.0.0.1.0.1", "3.0.0.0.0.1")。如果不满足对比规则,请自行修改。
-
如果修改,请将
*pages/upgrade-popup.vue*
中
*compare*
函数一并修改
## 项目代码说明
### 更新弹框
-
`upgrade-popup.vue`
- 更新应用:
-
如果
`check-version`
返回的参数表明需要更新,则将参数保存在localStorage中,带着键值跳转该页面
-
如果云函数
`check-version`
返回的参数表明需要更新,则将参数保存在localStorage中,带着键值跳转该页面
-
进入时会先从localStorage中尝试取出之前存的安装包路径(此包不会是强制安装类型的包)
-
如果有已经保存的包,则和传进来的
`version`
进行比较,如果相等则安装。大于和小于都不进行安装,因为admin端可能会调整包的版本。不符合更新会将此包删除
-
如果本地没有包或者包不符合安装条件,则进行下载安装包
...
...
@@ -86,6 +93,12 @@
-
下载过程中,如果退出会提示是否取消下载。如果是强制更新,则只会提示正在下载请稍后,此时不可退出
-
如果是下载完成了没有安装就退出,则会将下载完成的包保存在本地。将包的本地路径和包version保存在localStorage中
### 工具类 utils
-
`call-check-version`
-
请求云函数
`check-version`
拿取版本检测结果
-
`check-update`
-
调用
`call-check-version`
并根据结果判断是否显示更新弹框
### 云函数
-
`check-version`
- 检查应用更新:
-
根据传参,先检测传参是否完整,appid appVersion wgtVersion 必传
...
...
@@ -93,3 +106,11 @@
-
再从所有线上发行更新中取出版本最大的一版。如果可以,尽量先检测wgt的线上发行版更新
-
使用上一步取出的版本包的版本号 和传参 appVersion、wgtVersion 来检测是否有更新。必须同时大于这两项,因为上一次可能是wgt热更新,否则返回暂无更新
-
如果库中 wgt包 版本大于传参 appVersion,但是不满足 min_uni_version < appVersion,则不会使用wgt更新,会接着判断库中 app包version 是否大于 appVersion
-
返回结果:
|code|message|
|:-:|:-:|
|0|当前版本已经是最新的,不需要更新|
|101|wgt更新|
|102|整包更新|
|-101|暂无更新或检查appid是否填写正确|
|-102|请检查传参是否填写正确|
\ No newline at end of file
uni_modules/uni-upgrade-center-app/utils/call-check-version.js
0 → 100644
浏览文件 @
db11835d
export
default
function
()
{
// #ifdef APP-PLUS
return
new
Promise
((
resolve
,
reject
)
=>
{
plus
.
runtime
.
getProperty
(
plus
.
runtime
.
appid
,
function
(
widgetInfo
)
{
uniCloud
.
callFunction
({
name
:
'
check-version
'
,
data
:
{
appid
:
plus
.
runtime
.
appid
,
appVersion
:
plus
.
runtime
.
version
,
wgtVersion
:
widgetInfo
.
version
},
success
:
(
e
)
=>
{
resolve
(
e
)
},
fail
:
(
error
)
=>
{
reject
(
error
)
}
})
})
})
// #endif
// #ifndef APP-PLUS
return
new
Promise
((
resolve
,
reject
)
=>
{
reject
({
message
:
'
请在App中使用
'
})
})
// #endif
}
uni_modules/uni-upgrade-center-app/utils/check-update.js
浏览文件 @
db11835d
import
callCheckVersion
from
'
./call-check-version
'
// 推荐再App.vue中使用
const
PACKAGE_INFO_KEY
=
'
__package_info__
'
export
default
function
()
{
// #ifdef APP-PLUS
plus
.
runtime
.
getProperty
(
plus
.
runtime
.
appid
,
function
(
widgetInfo
)
{
uniCloud
.
callFunction
({
name
:
'
check-version
'
,
data
:
{
appid
:
plus
.
runtime
.
appid
,
appVersion
:
plus
.
runtime
.
version
,
wgtVersion
:
widgetInfo
.
version
},
success
:
async
(
e
)
=>
{
callCheckVersion
().
then
(
async
(
e
)
=>
{
if
(
!
e
.
result
)
return
;
const
{
code
,
...
...
@@ -70,13 +64,10 @@ export default function() {
// TODO 云函数报错处理
console
.
error
(
message
)
}
},
fail
:
(
err
)
=>
{
}).
catch
(
err
=>
{
// TODO 云函数报错处理
console
.
error
(
err
.
message
)
}
})
});
// #endif
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录