Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DCloud
hello uni-app x
提交
3a21b53c
H
hello uni-app x
项目概览
DCloud
/
hello uni-app x
通知
6072
Star
94
Fork
167
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
19
列表
看板
标记
里程碑
合并请求
1
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
H
hello uni-app x
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
19
Issue
19
列表
看板
标记
里程碑
合并请求
1
合并请求
1
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
3a21b53c
编写于
11月 27, 2023
作者:
D
DCloud_LXH
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feat: 升级中心升级至 0.7.3
上级
a0a5a244
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
202 addition
and
6 deletion
+202
-6
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/utils/call-check-version.ts
...odules/uni-upgrade-center-app/utils/call-check-version.ts
+13
-5
uni_modules/uni-upgrade-center-app/utils/check-update-nvue.js
...modules/uni-upgrade-center-app/utils/check-update-nvue.js
+184
-0
未找到文件。
uni_modules/uni-upgrade-center-app/changelog.md
浏览文件 @
3a21b53c
## 0.7.3(2023-11-27)
-
修复 在 uni-app x 中无更新时报错的Bug
## 0.7.2(2023-11-20)
-
新增 插件根目录 utils 文件夹中新增 check-update-nvue.js 文件(vue2 的 nvue 页面请引用该文件)
## 0.7.1(2023-11-17)
-
修复 运行至浏览器 ts 语法报错
## 0.7.0(2023-11-10)
...
...
uni_modules/uni-upgrade-center-app/package.json
浏览文件 @
3a21b53c
{
"id"
:
"uni-upgrade-center-app"
,
"displayName"
:
"升级中心 uni-upgrade-center - App"
,
"version"
:
"0.7.
1
"
,
"version"
:
"0.7.
3
"
,
"description"
:
"uni升级中心 - 客户端检查更新"
,
"keywords"
:
[
"uniCloud"
,
...
...
uni_modules/uni-upgrade-center-app/utils/call-check-version.ts
浏览文件 @
3a21b53c
...
...
@@ -78,11 +78,19 @@ export default function () : Promise<UniUpgradeCenterResult> {
data
:
data
}).
then
(
res
=>
{
const
code
=
res
.
result
[
'
code
'
]
if
([
'
Int
'
,
'
Long
'
,
'
number
'
].
includes
(
typeof
code
)
&&
(
code
as
number
)
<
0
)
{
reject
({
code
:
res
.
result
[
'
code
'
],
message
:
res
.
result
[
'
message
'
]
})
const
codeIsNumber
=
[
'
Int
'
,
'
Long
'
,
'
number
'
].
includes
(
typeof
code
)
if
(
codeIsNumber
)
{
if
((
code
as
number
)
==
0
)
{
reject
({
code
:
res
.
result
[
'
code
'
],
message
:
res
.
result
[
'
message
'
]
})
}
else
if
(
code
<
0
)
{
reject
({
code
:
res
.
result
[
'
code
'
],
message
:
res
.
result
[
'
message
'
]
})
}
}
else
{
const
result
=
JSON
.
parse
<
UniUpgradeCenterResult
>
(
JSON
.
stringify
(
res
.
result
))
as
UniUpgradeCenterResult
resolve
(
result
)
...
...
uni_modules/uni-upgrade-center-app/utils/check-update-nvue.js
0 → 100644
浏览文件 @
3a21b53c
function
callCheckVersion
()
{
// #ifdef APP-PLUS
return
new
Promise
((
resolve
,
reject
)
=>
{
plus
.
runtime
.
getProperty
(
plus
.
runtime
.
appid
,
function
(
widgetInfo
)
{
let
data
=
{
action
:
'
checkVersion
'
,
appid
:
plus
.
runtime
.
appid
,
appVersion
:
plus
.
runtime
.
version
,
wgtVersion
:
widgetInfo
.
version
}
uniCloud
.
callFunction
({
name
:
'
uni-upgrade-center
'
,
data
,
success
:
(
e
)
=>
{
resolve
(
e
)
},
fail
:
(
error
)
=>
{
reject
(
error
)
}
})
})
})
// #endif
// #ifndef APP-PLUS
return
new
Promise
((
resolve
,
reject
)
=>
{})
// #endif
}
// 推荐再App.vue中使用
const
PACKAGE_INFO_KEY
=
'
__package_info__
'
export
default
function
()
{
// #ifdef APP-PLUS
return
new
Promise
((
resolve
,
reject
)
=>
{
callCheckVersion
().
then
(
async
(
e
)
=>
{
if
(
!
e
.
result
)
return
;
const
{
code
,
message
,
is_silently
,
// 是否静默更新
url
,
// 安装包下载地址
platform
,
// 安装包平台
type
// 安装包类型
}
=
e
.
result
;
// 此处逻辑仅为实例,可自行编写
if
(
code
>
0
)
{
// 腾讯云和阿里云下载链接不同,需要处理一下,阿里云会原样返回
const
{
fileList
}
=
await
uniCloud
.
getTempFileURL
({
fileList
:
[
url
]
});
if
(
fileList
[
0
].
tempFileURL
)
e
.
result
.
url
=
fileList
[
0
].
tempFileURL
;
resolve
(
e
)
// 静默更新,只有wgt有
if
(
is_silently
)
{
uni
.
downloadFile
({
url
:
e
.
result
.
url
,
success
:
res
=>
{
if
(
res
.
statusCode
==
200
)
{
// 下载好直接安装,下次启动生效
plus
.
runtime
.
install
(
res
.
tempFilePath
,
{
force
:
false
});
}
}
});
return
;
}
/**
* 提示升级一
* 使用 uni.showModal
*/
// return updateUseModal(e.result)
/**
* 提示升级二
* 官方适配的升级弹窗,可自行替换资源适配UI风格
*/
uni
.
setStorageSync
(
PACKAGE_INFO_KEY
,
e
.
result
)
uni
.
navigateTo
({
url
:
`/uni_modules/uni-upgrade-center-app/pages/upgrade-popup?local_storage_key=
${
PACKAGE_INFO_KEY
}
`
,
fail
:
(
err
)
=>
{
console
.
error
(
'
更新弹框跳转失败
'
,
err
)
uni
.
removeStorageSync
(
PACKAGE_INFO_KEY
)
}
})
return
}
else
if
(
code
<
0
)
{
// TODO 云函数报错处理
console
.
error
(
message
)
return
reject
(
e
)
}
return
resolve
(
e
)
}).
catch
(
err
=>
{
// TODO 云函数报错处理
console
.
error
(
err
.
message
)
reject
(
err
)
})
});
// #endif
}
/**
* 使用 uni.showModal 升级
*/
function
updateUseModal
(
packageInfo
)
{
const
{
title
,
// 标题
contents
,
// 升级内容
is_mandatory
,
// 是否强制更新
url
,
// 安装包下载地址
platform
,
// 安装包平台
type
// 安装包类型
}
=
packageInfo
;
let
isWGT
=
type
===
'
wgt
'
let
isiOS
=
!
isWGT
?
platform
.
includes
(
'
iOS
'
)
:
false
;
let
confirmText
=
isiOS
?
'
立即跳转更新
'
:
'
立即下载更新
'
return
uni
.
showModal
({
title
,
content
:
contents
,
showCancel
:
!
is_mandatory
,
confirmText
,
success
:
res
=>
{
if
(
res
.
cancel
)
return
;
// 安装包下载
if
(
isiOS
)
{
plus
.
runtime
.
openURL
(
url
);
return
;
}
uni
.
showToast
({
title
:
'
后台下载中……
'
,
duration
:
1000
});
// wgt 和 安卓下载更新
downloadTask
=
uni
.
downloadFile
({
url
,
success
:
res
=>
{
if
(
res
.
statusCode
!==
200
)
{
console
.
error
(
'
下载安装包失败
'
,
err
);
return
;
}
// 下载好直接安装,下次启动生效
plus
.
runtime
.
install
(
res
.
tempFilePath
,
{
force
:
false
},
()
=>
{
if
(
is_mandatory
)
{
//更新完重启app
plus
.
runtime
.
restart
();
return
;
}
uni
.
showModal
({
title
:
'
安装成功是否重启?
'
,
success
:
res
=>
{
if
(
res
.
confirm
)
{
//更新完重启app
plus
.
runtime
.
restart
();
}
}
});
},
err
=>
{
uni
.
showModal
({
title
:
'
更新失败
'
,
content
:
err
.
message
,
showCancel
:
false
});
});
}
});
}
});
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录