Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DCloud
hello uni-app x
提交
856c93a3
H
hello uni-app x
项目概览
DCloud
/
hello uni-app x
通知
5995
Star
90
Fork
162
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
18
列表
看板
标记
里程碑
合并请求
1
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
H
hello uni-app x
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
18
Issue
18
列表
看板
标记
里程碑
合并请求
1
合并请求
1
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
856c93a3
编写于
10月 30, 2024
作者:
D
DCloud_LXH
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feat(升级中心): 升级至 0.9.0 使用 dialogPage 实现需要 HBuilderX 4.31
上级
ed0c0dca
变更
7
展开全部
隐藏空白更改
内联
并排
Showing
7 changed file
with
629 addition
and
618 deletion
+629
-618
pages.json
pages.json
+9
-0
pages/tabBar/component.uvue
pages/tabBar/component.uvue
+2
-18
uni_modules/uni-upgrade-center-app/changelog.md
uni_modules/uni-upgrade-center-app/changelog.md
+2
-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/pages/uni-app-x/upgrade-popup.uvue
...uni-upgrade-center-app/pages/uni-app-x/upgrade-popup.uvue
+510
-495
uni_modules/uni-upgrade-center-app/utils/call-check-version.ts
...odules/uni-upgrade-center-app/utils/call-check-version.ts
+15
-15
uni_modules/uni-upgrade-center-app/utils/check-update.ts
uni_modules/uni-upgrade-center-app/utils/check-update.ts
+90
-89
未找到文件。
pages.json
浏览文件 @
856c93a3
...
...
@@ -1233,6 +1233,15 @@
}
},
//
#endif
//
#ifdef
APP-ANDROID
||
APP-IOS
{
"path"
:
"uni_modules/uni-upgrade-center-app/pages/uni-app-x/upgrade-popup"
,
"style"
:
{
"navigationBarTitleText"
:
""
}
},
//
#endif
{
"path"
:
"pages/tabBar/CSS"
,
"style"
:
{
...
...
pages/tabBar/component.uvue
浏览文件 @
856c93a3
...
...
@@ -39,10 +39,6 @@
</template>
</uni-collapse-item>
</uni-collapse>
<!-- #ifdef UNI-APP-X && APP -->
<uni-upgrade-center-app ref="upgradePopup" @show="upgradePopupShow" @close="upgradePopupClose" />
<!-- #endif -->
</view>
<!-- #ifdef APP -->
</scroll-view>
...
...
@@ -80,19 +76,7 @@
} else {
uni.navigateTo({ url })
}
},
// #ifdef UNI-APP-X && APP
upgradePopupShow() {
console.log('upgradePopup show');
if (!this.pageHiden) {
uni.hideTabBar()?.catch(_ => { })
}
}
, upgradePopupClose() {
console.log('upgradePopup close');
uni.showTabBar()?.catch(_ => { })
}
// #endif
},
// #ifdef WEB
watch: {
...
...
@@ -118,11 +102,11 @@
if (res.needAuthorization) {
uni.onPrivacyAuthorizationChange((res) => {
if (!res.needAuthorization) {
checkUpdate(
this.$refs['upgradePopup'] as UniUpgradeCenterAppComponentPublicInstance
)
checkUpdate()
}
})
} else {
checkUpdate(
this.$refs['upgradePopup'] as UniUpgradeCenterAppComponentPublicInstance
)
checkUpdate()
}
}
})
...
...
uni_modules/uni-upgrade-center-app/changelog.md
浏览文件 @
856c93a3
## 0.9.0(2024-10-30)
-
**重要更新**
在 uni-app x 项目中弃用之前弹窗方案使用
[
dialogPage
](
https://doc.dcloud.net.cn/uni-app-x/api/dialog-page.html
)
实现,需要
`HBuilderX 4.31+`
## 0.8.5(2024-10-26)
-
优化 去除不必要代码
## 0.8.4(2024-10-26)
...
...
uni_modules/uni-upgrade-center-app/package.json
浏览文件 @
856c93a3
{
"id"
:
"uni-upgrade-center-app"
,
"displayName"
:
"升级中心 uni-upgrade-center - App"
,
"version"
:
"0.
8.5
"
,
"version"
:
"0.
9.0
"
,
"description"
:
"uni升级中心 - 客户端检查更新"
,
"keywords"
:
[
"uniCloud"
,
...
...
uni_modules/uni-upgrade-center-app/
components/uni-upgrade-center-app/uni-upgrade-center-ap
p.uvue
→
uni_modules/uni-upgrade-center-app/
pages/uni-app-x/upgrade-popu
p.uvue
浏览文件 @
856c93a3
此差异已折叠。
点击以展开。
uni_modules/uni-upgrade-center-app/utils/call-check-version.ts
浏览文件 @
856c93a3
...
...
@@ -26,7 +26,7 @@ export type UniUpgradeCenterResult = {
type
:
string
// "native_app" | "wgt"
store_list
:
StoreListItem
[]
|
null
min_uni_version
:
string
|
null
// 升级 wgt 的最低 uni-app 版本
min_uni_version
:
string
|
null
// 升级 wgt 的最低 uni-app 版本
}
export
default
function
()
:
Promise
<
UniUpgradeCenterResult
>
{
...
...
@@ -80,20 +80,20 @@ export default function () : Promise<UniUpgradeCenterResult> {
const
code
=
res
.
result
[
'
code
'
]
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
as
number
)
<
0
)
{
reject
({
code
:
res
.
result
[
'
code
'
],
message
:
res
.
result
[
'
message
'
]
})
}
else
{
const
result
=
JSON
.
parse
<
UniUpgradeCenterResult
>
(
JSON
.
stringify
(
res
.
result
))
as
UniUpgradeCenterResult
resolve
(
result
)
}
if
((
code
as
number
)
==
0
)
{
reject
({
code
:
res
.
result
[
'
code
'
],
message
:
res
.
result
[
'
message
'
]
})
}
else
if
((
code
as
number
)
<
0
)
{
reject
({
code
:
res
.
result
[
'
code
'
],
message
:
res
.
result
[
'
message
'
]
})
}
else
{
const
result
=
JSON
.
parse
<
UniUpgradeCenterResult
>
(
JSON
.
stringify
(
res
.
result
))
as
UniUpgradeCenterResult
resolve
(
result
)
}
}
}).
catch
<
void
>
((
err
:
any
|
null
)
=>
{
const
error
=
err
as
UniCloudError
...
...
uni_modules/uni-upgrade-center-app/utils/check-update.ts
浏览文件 @
856c93a3
...
...
@@ -6,13 +6,7 @@ import { openSchema } from '@/uni_modules/uts-openSchema'
// 推荐再App.vue中使用
const
PACKAGE_INFO_KEY
=
'
__package_info__
'
// uni-app 项目无法从 vue 中导出 ComponentPublicInstance 类型,故使用条件编译
// #ifdef UNI-APP-X
export
default
function
(
component
:
ComponentPublicInstance
|
null
=
null
)
:
Promise
<
UniUpgradeCenterResult
>
{
// #endif
// #ifndef UNI-APP-X
export
default
function
()
:
Promise
<
UniUpgradeCenterResult
>
{
// #endif
return
new
Promise
<
UniUpgradeCenterResult
>
((
resolve
,
reject
)
=>
{
callCheckVersion
().
then
(
async
(
uniUpgradeCenterResult
)
=>
{
// NOTE uni-app x 3.96 解构有问题
...
...
@@ -20,65 +14,72 @@ export default function () : Promise<UniUpgradeCenterResult> {
const
message
=
uniUpgradeCenterResult
.
message
const
url
=
uniUpgradeCenterResult
.
url
// 安装包下载地址
// 此处逻辑仅为示例,可自行编写
if
(
code
>
0
)
{
// 腾讯云和阿里云下载链接不同,需要处理一下,阿里云会原样返回
const
tcbRes
=
await
uniCloud
.
getTempFileURL
({
fileList
:
[
url
]
});
if
(
typeof
tcbRes
.
fileList
[
0
].
tempFileURL
!==
'
undefined
'
)
uniUpgradeCenterResult
.
url
=
tcbRes
.
fileList
[
0
].
tempFileURL
;
// 此处逻辑仅为示例,可自行编写
if
(
code
>
0
)
{
// 腾讯云和阿里云下载链接不同,需要处理一下,阿里云会原样返回
const
tcbRes
=
await
uniCloud
.
getTempFileURL
({
fileList
:
[
url
]
});
if
(
typeof
tcbRes
.
fileList
[
0
].
tempFileURL
!==
'
undefined
'
)
uniUpgradeCenterResult
.
url
=
tcbRes
.
fileList
[
0
].
tempFileURL
;
/**
* 提示升级一
* 使用 uni.showModal
*/
// return updateUseModal(uniUpgradeCenterResult)
/**
* 提示升级一
* 使用 uni.showModal
*/
// return updateUseModal(uniUpgradeCenterResult)
// #ifndef UNI-APP-X
// 静默更新,只有wgt有
if
(
uniUpgradeCenterResult
.
is_silently
)
{
uni
.
downloadFile
({
url
,
success
:
res
=>
{
if
(
res
.
statusCode
==
200
)
{
// 下载好直接安装,下次启动生效
plus
.
runtime
.
install
(
res
.
tempFilePath
,
{
force
:
false
});
}
}
});
return
;
}
// #endif
// #ifndef UNI-APP-X
// 静默更新,只有wgt有
if
(
uniUpgradeCenterResult
.
is_silently
)
{
uni
.
downloadFile
({
url
,
success
:
res
=>
{
if
(
res
.
statusCode
==
200
)
{
// 下载好直接安装,下次启动生效
plus
.
runtime
.
install
(
res
.
tempFilePath
,
{
force
:
false
});
}
}
});
return
;
}
// #endif
/**
* 提示升级二
* 官方适配的升级弹窗,可自行替换资源适配UI风格
*/
// #ifndef UNI-APP-X
uni
.
setStorageSync
(
PACKAGE_INFO_KEY
,
uniUpgradeCenterResult
)
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
)
}
/**
* 提示升级二
* 官方适配的升级弹窗,可自行替换资源适配UI风格
*/
uni
.
setStorageSync
(
PACKAGE_INFO_KEY
,
uniUpgradeCenterResult
)
// #ifndef UNI-APP-X
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
)
}
})
// #endif
// #ifdef UNI-APP-X
uni
.
openDialogPage
({
url
:
`/uni_modules/uni-upgrade-center-app/pages/uni-app-x/upgrade-popup?local_storage_key=
${
PACKAGE_INFO_KEY
}
`
,
disableEscBack
:
true
,
fail
:
(
err
)
=>
{
console
.
error
(
'
更新弹框跳转失败
'
,
err
)
uni
.
removeStorageSync
(
PACKAGE_INFO_KEY
)
}
})
// #endif
// #ifdef UNI-APP-X
component
?.
$callMethod
(
'
show
'
,
true
,
uniUpgradeCenterResult
)
// #endif
// #endif
return
resolve
(
uniUpgradeCenterResult
)
}
else
if
(
code
<
0
)
{
console
.
error
(
message
)
return
reject
(
uniUpgradeCenterResult
)
}
return
resolve
(
uniUpgradeCenterResult
)
}).
catch
((
err
)
=>
{
reject
(
err
)
})
});
}
return
resolve
(
uniUpgradeCenterResult
)
}
else
if
(
code
<
0
)
{
console
.
error
(
message
)
return
reject
(
uniUpgradeCenterResult
)
}
return
resolve
(
uniUpgradeCenterResult
)
}).
catch
((
err
)
=>
{
reject
(
err
)
})
});
}
/**
* 使用 uni.showModal 升级
...
...
@@ -104,13 +105,13 @@ function updateUseModal(packageInfo : UniUpgradeCenterResult) : void {
let
confirmText
=
'
立即下载更新
'
// #endif
return
uni
.
showModal
({
title
,
content
:
contents
,
showCancel
:
!
is_mandatory
,
confirmText
,
success
:
res
=>
{
if
(
res
.
cancel
)
return
;
return
uni
.
showModal
({
title
,
content
:
contents
,
showCancel
:
!
is_mandatory
,
confirmText
,
success
:
res
=>
{
if
(
res
.
cancel
)
return
;
if
(
isiOS
)
{
// iOS 平台跳转 AppStore
...
...
@@ -123,10 +124,10 @@ function updateUseModal(packageInfo : UniUpgradeCenterResult) : void {
return
;
}
uni
.
showToast
({
title
:
'
后台下载中……
'
,
duration
:
1000
});
uni
.
showToast
({
title
:
'
后台下载中……
'
,
duration
:
1000
});
// wgt 和 安卓下载更新
uni
.
downloadFile
({
...
...
@@ -137,7 +138,7 @@ function updateUseModal(packageInfo : UniUpgradeCenterResult) : void {
return
;
}
// 下载好直接安装,下次启动生效
// uni-app x 项目没有 plus5+ 故使用条件编译
// uni-app x 项目没有 plus5+ 故使用条件编译
// #ifndef UNI-APP-X
plus
.
runtime
.
install
(
res
.
tempFilePath
,
{
force
:
false
...
...
@@ -166,23 +167,23 @@ function updateUseModal(packageInfo : UniUpgradeCenterResult) : void {
});
// #endif
// #ifdef UNI-APP-X
uni
.
installApk
({
filePath
:
res
.
tempFilePath
,
success
:
()
=>
{
uni
.
showModal
({
title
:
'
安装成功请手动重启
'
});
},
fail
:
err
=>
{
uni
.
showModal
({
title
:
'
更新失败
'
,
content
:
err
.
errMsg
,
showCancel
:
false
});
}
});
// #endif
// #ifdef UNI-APP-X
uni
.
installApk
({
filePath
:
res
.
tempFilePath
,
success
:
()
=>
{
uni
.
showModal
({
title
:
'
安装成功请手动重启
'
});
},
fail
:
err
=>
{
uni
.
showModal
({
title
:
'
更新失败
'
,
content
:
err
.
errMsg
,
showCancel
:
false
});
}
});
// #endif
}
});
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录