Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DCloud
hello uni-app x
提交
ed09b91d
H
hello uni-app x
项目概览
DCloud
/
hello uni-app x
通知
5992
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看板
提交
ed09b91d
编写于
11月 02, 2024
作者:
雪洛
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'alpha' into alpha-stat
上级
c8d5d47f
e2e237d1
变更
21
展开全部
隐藏空白更改
内联
并排
Showing
21 changed file
with
767 addition
and
681 deletion
+767
-681
manifest.json
manifest.json
+2
-2
pages.json
pages.json
+14
-4
pages/API/privacy/privacy.uvue
pages/API/privacy/privacy.uvue
+8
-0
pages/CSS/border/border.test.js
pages/CSS/border/border.test.js
+12
-0
pages/CSS/border/border.uvue
pages/CSS/border/border.uvue
+28
-12
pages/CSS/layout/width.uvue
pages/CSS/layout/width.uvue
+5
-0
pages/component/button/button.uvue
pages/component/button/button.uvue
+9
-1
pages/component/picker-view/picker-view.test.js
pages/component/picker-view/picker-view.test.js
+28
-19
pages/component/picker-view/picker-view.uvue
pages/component/picker-view/picker-view.uvue
+7
-7
pages/pages.test.js
pages/pages.test.js
+1
-1
pages/tabBar/API.uvue
pages/tabBar/API.uvue
+3
-7
pages/tabBar/CSS.uvue
pages/tabBar/CSS.uvue
+1
-1
pages/tabBar/component.uvue
pages/tabBar/component.uvue
+15
-19
pages/tabBar/generateMenu.uts
pages/tabBar/generateMenu.uts
+1
-12
pages/tabBar/template.uvue
pages/tabBar/template.uvue
+1
-1
uni_modules/uni-pay-x/pages/success/success.uvue
uni_modules/uni-pay-x/pages/success/success.uvue
+6
-4
uni_modules/uni-upgrade-center-app/changelog.md
uni_modules/uni-upgrade-center-app/changelog.md
+6
-0
uni_modules/uni-upgrade-center-app/package.json
uni_modules/uni-upgrade-center-app/package.json
+5
-3
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
-484
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
未找到文件。
manifest.json
浏览文件 @
ed09b91d
...
...
@@ -2,8 +2,8 @@
"name"
:
"Hello uni-app x"
,
"appid"
:
"__UNI__HelloUniAppX"
,
"description"
:
""
,
"versionName"
:
"1.6"
,
"versionCode"
:
1060
0
,
"versionName"
:
"1.6
.5
"
,
"versionCode"
:
1060
5
,
"uni-app-x"
:
{},
/*
快应用特有相关
*/
"quickapp"
:
{},
...
...
pages.json
浏览文件 @
ed09b91d
...
...
@@ -16,7 +16,7 @@
"path"
:
"pages/tabBar/component"
,
"style"
:
{
"navigationBarTitleText"
:
"内置组件"
,
"backgroundColor
"
:
"#F8F8F
8"
"backgroundColor
Content"
:
"#f8f8f
8"
}
},
{
...
...
@@ -521,7 +521,7 @@
"path"
:
"pages/tabBar/API"
,
"style"
:
{
"navigationBarTitleText"
:
"接口"
,
"backgroundColor
"
:
"#F8F8F
8"
"backgroundColor
Content"
:
"#f8f8f
8"
}
},
{
...
...
@@ -1233,11 +1233,20 @@
}
},
//
#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"
:
{
"navigationBarTitleText"
:
"CSS"
,
"backgroundColor
"
:
"#F8F8F
8"
"backgroundColor
Content"
:
"#f8f8f
8"
}
},
{
...
...
@@ -1684,7 +1693,8 @@
{
"path"
:
"pages/tabBar/template"
,
"style"
:
{
"navigationBarTitleText"
:
"模板"
"navigationBarTitleText"
:
"模板"
,
"backgroundColorContent"
:
"#f8f8f8"
}
},
{
...
...
pages/API/privacy/privacy.uvue
浏览文件 @
ed09b91d
...
...
@@ -15,6 +15,9 @@
<button class="privacy-button" type="primary" @tap="resetPrivacyAuthorization">
重置隐私协议授权状态
</button>
<button class="privacy-button" @tap="openPrivacyDialog">
显示隐私政策弹框
</button>
</view>
</view>
</template>
...
...
@@ -63,6 +66,11 @@
},
resetPrivacyAuthorization(){
uni.resetPrivacyAuthorization()
},
openPrivacyDialog(){
uni.openDialogPage({
url: '/pages/component/button/privacy',
})
}
}
}
...
...
pages/CSS/border/border.test.js
0 → 100644
浏览文件 @
ed09b91d
describe
(
'
css-border
'
,
()
=>
{
let
page
;
beforeAll
(
async
()
=>
{
page
=
await
program
.
reLaunch
(
"
/pages/CSS/border/border
"
)
await
page
.
waitFor
(
2000
);
});
it
(
'
Check Border Wait Screenshot
'
,
async
()
=>
{
const
image
=
await
program
.
screenshot
({
fullPage
:
true
});
expect
(
image
).
toSaveImageSnapshot
();
});
});
pages/CSS/border/border.uvue
浏览文件 @
ed09b91d
<template>
<view style="flex-grow: 1;">
<view>
<text>border: 5px dotted blue</text>
<view class="common" style="border: 5px dotted blue;"></view>
</view>
<view>
<text>border与background-image同时设置</text>
<view class="common"
style="border-style: solid;border-color: rgba(0, 0, 255, 0.1);background-image: linear-gradient(to right, #00ff00, #00bc79)">
<!-- #ifdef APP -->
<scroll-view style="flex: 1">
<!-- #endif -->
<view style="flex-grow: 1;">
<view>
<text>border: 5px dotted blue</text>
<view class="common" style="border: 5px dotted blue;"></view>
</view>
<view>
<text>border与background-image同时设置</text>
<view class="common"
style="border-style: solid;border-color: rgba(0, 0, 255, 0.1);background-image: linear-gradient(to right, #00ff00, #00bc79)">
</view>
</view>
<view>
<text>设置border的view,通过v-show控制显示</text>
<view v-show="shown">
<view class="common" style="border: 5px dotted blue;">
</view>
</view>
</view>
</view>
</view>
<!-- #ifdef APP -->
</scroll-view>
<!-- #endif -->
</template>
<script>
<script setup lang="uts">
const shown = ref(false)
setTimeout(() => {
shown.value = true
}, 1000);
</script>
<style>
...
...
pages/CSS/layout/width.uvue
浏览文件 @
ed09b91d
...
...
@@ -8,6 +8,11 @@
<view style="width: 250px;">
<text>width: 50%</text>
<view class="common" style="width: 50%;"></view>
</view>
<view>
<text>width: 250rpx</text>
<view class="common" style="width: 250rpx;"></view>
</view>
</view>
</template>
...
...
pages/component/button/button.uvue
浏览文件 @
ed09b91d
...
...
@@ -38,6 +38,11 @@
uni.navigateTo({
url: 'buttonstatus',
})
},
openPrivacyDialog() {
uni.openDialogPage({
url: '/pages/component/button/privacy',
})
},
//用于自动化测试
checkUniButtonElement() : boolean {
...
...
@@ -71,7 +76,10 @@
<enum-data :items="type_enum" title="按钮的类型" @change="radio_change_type_enum"></enum-data>
<input-data :defaultValue="text" title="按钮的文案" type="text" @confirm="confirm_text_input"></input-data>
<view style="height: 10px;"></view>
<button @click="navigateToChild">更多示例</button>
<button @click="openPrivacyDialog">open-type实现隐私政策弹框</button>
<view style="height: 10px;"></view>
<button @click="navigateToChild">更多示例</button>
<view style="height: 10px;"></view>
</view>
</scroll-view>
</template>
...
...
pages/component/picker-view/picker-view.test.js
浏览文件 @
ed09b91d
const
PAGE_PATH
=
'
/pages/component/picker-view/picker-view
'
let
page
,
pickerViewEl
;
let
page
,
pickerViewEl
;
describe
(
'
PickerView.uvue
'
,
()
=>
{
beforeAll
(
async
()
=>
{
page
=
await
program
.
reLaunch
(
PAGE_PATH
)
...
...
@@ -14,19 +13,25 @@ describe('PickerView.uvue', () => {
})
async
function
toScreenshot
(
imgName
)
{
const
image
=
await
program
.
screenshot
({
fullPage
:
true
});
expect
(
image
).
toSaveImageSnapshot
({
customSnapshotIdentifier
()
{
return
imgName
}})
const
image
=
await
program
.
screenshot
({
fullPage
:
true
});
expect
(
image
).
toSaveImageSnapshot
({
customSnapshotIdentifier
()
{
return
imgName
}
})
await
page
.
waitFor
(
500
);
}
it
(
'
value
'
,
async
()
=>
{
await
page
.
callMethod
(
'
setValue
'
)
await
page
.
waitFor
(
1000
)
const
newValue1
=
await
pickerViewEl
.
property
(
'
value
'
)
// TODO
expect
(
newValue1
.
toString
()).
toEqual
(
'
0,
0,
0
'
)
expect
(
newValue1
.
toString
()).
toEqual
(
'
0,
1,3
0
'
)
if
(
process
.
env
.
UNI_PLATFORM
===
'
app-android
'
)
{
expect
(
await
page
.
data
(
'
result
'
)).
toEqual
([
0
,
0
,
0
])
}
...
...
@@ -58,27 +63,31 @@ describe('PickerView.uvue', () => {
await
toScreenshot
(
'
picker-view-indicator-style
'
)
})
if
(
process
.
env
.
uniTestPlatformInfo
.
startsWith
(
'
web
'
))
{
if
(
process
.
env
.
uniTestPlatformInfo
.
startsWith
(
'
web
'
))
{
// indicator-class、mask-style、mask-class 仅web支持
it
(
'
indicator-class
'
,
async
()
=>
{
await
page
.
setData
({
indicatorStyle
:
""
,
//清空indicatorStyle
indicatorClass
:
"
indicator-test
"
,
//设置indicatorClass为indicator-test
indicatorStyle
:
""
,
//清空indicatorStyle
indicatorClass
:
"
indicator-test
"
,
//设置indicatorClass为indicator-test
})
expect
(
await
pickerViewEl
.
attribute
(
'
indicatorClass
'
)).
toBe
(
"
indicator-test
"
)
await
toScreenshot
(
'
picker-view-web-indicator-class
'
)
await
page
.
setData
({
indicatorClass
:
""
,
//清空indicatorClass
indicatorClass
:
""
,
//清空indicatorClass
})
})
it
(
'
mask-style
'
,
async
()
=>
{
const
maskStyle
=
"
background-image: linear-gradient(to bottom, #d8e5ff, rgba(216, 229, 255, 0));
"
await
page
.
setData
({
maskStyle
})
await
page
.
setData
({
maskStyle
})
expect
(
await
pickerViewEl
.
attribute
(
'
maskStyle
'
)).
toBe
(
maskStyle
)
await
toScreenshot
(
'
picker-view-web-mask-style
'
)
})
it
(
'
mask-class
'
,
async
()
=>
{
await
page
.
setData
({
maskClass
:
"
mask-test
"
})
await
page
.
setData
({
maskClass
:
"
mask-test
"
})
expect
(
await
pickerViewEl
.
attribute
(
'
maskClass
'
)).
toBe
(
"
mask-test
"
)
await
toScreenshot
(
'
picker-view-web-mask-class
'
)
})
...
...
@@ -106,24 +115,24 @@ describe('PickerView.uvue', () => {
await
page
.
waitFor
(
500
)
page
=
await
program
.
navigateTo
(
PAGE_PATH
)
await
page
.
waitFor
(
500
)
const
date
=
new
Date
()
const
{
year
,
month
,
day
}
=
await
page
.
data
()
expect
(
year
).
toEqual
(
date
.
getFullYear
()
)
expect
(
month
).
toEqual
(
date
.
getMonth
()
+
1
)
expect
(
day
).
toEqual
(
date
.
getDate
()
)
expect
(
year
).
toEqual
(
2018
)
expect
(
month
).
toEqual
(
1
)
expect
(
day
).
toEqual
(
12
)
})
it
(
'
trigger UniPickerViewChangeEvent
'
,
async
()
=>
{
await
page
.
callMethod
(
'
setValue
'
)
await
page
.
waitFor
(
1500
)
const
eventCallbackNum
=
await
page
.
callMethod
(
'
getEventCallbackNum
'
)
//
3 times 3*3
//
年月日滚动三次,测试 e.tagName +1 和 e.type+2,正常为9
expect
(
eventCallbackNum
).
toBe
(
9
)
})
}
})
})
\ No newline at end of file
pages/component/picker-view/picker-view.uvue
浏览文件 @
ed09b91d
...
...
@@ -27,13 +27,13 @@
import { state, setEventCallbackNum } from '@/store/index.uts'
export default {
data() {
const date = new Date(
)
// 20180112 HBuilderX内测开始 :
)
const _years : number[] = []
const _year =
date.getFullYear()
const _year =
2018
const _months : number[] = []
const _month : number =
date.getMonth() +
1
const _month : number = 1
const _days : number[] = []
const _day =
date.getDate()
const _day =
12
for (let i = 2000; i <= _year; i++) {
_years.push(i)
}
...
...
@@ -72,8 +72,8 @@
setEventCallbackNum(num)
},
bindChange(e : UniPickerViewChangeEvent) {
// 自动化测试
console.log(e.target?.tagName, e.type);
// 自动化测试
触发事件元素、type 类型
//
console.log(e.target?.tagName, e.type);
if ((e.target?.tagName ?? '').includes('PICKER-VIEW')) {
this.setEventCallbackNum(state.eventCallbackNum + 1)
}
...
...
@@ -87,7 +87,7 @@
this.day = this.days[val[2]]
},
setValue() {
this.value = [0,
0,
0] as number[]
this.value = [0,
1, 3
0] as number[]
},
setValue1() {
this.value = [10, 10, 10] as number[]
...
...
pages/pages.test.js
浏览文件 @
ed09b91d
...
...
@@ -170,7 +170,7 @@ const pages = [
'
/pages/CSS/background/background-color
'
,
// 单独测试例中截图
// '/pages/CSS/background/background-image',
'
/pages/CSS/border/border
'
,
//
'/pages/CSS/border/border',
'
/pages/CSS/border/border-color
'
,
'
/pages/CSS/border/border-top
'
,
'
/pages/CSS/border/border-bottom
'
,
...
...
pages/tabBar/API.uvue
浏览文件 @
ed09b91d
<template>
<!-- #ifdef APP -->
<scroll-view style="flex: 1;
background-color: #f8f8f8
" enable-back-to-top="true">
<scroll-view style="flex: 1;" enable-back-to-top="true">
<!-- #endif -->
<view class="uni-container">
<view v-if="!hasLeftWin" class="uni-header-logo">
...
...
@@ -79,11 +79,7 @@
goPage(url : string) {
if (url == '/set-tab-bar') {
this.showPop()
}else if (url == '/show-privacy-dialog') {
uni.openDialogPage({
url: '/pages/component/button/privacy',
})
} else {
}else {
if (this.hasLeftWin) {
uni.reLaunch({ url })
} else {
...
...
@@ -137,4 +133,4 @@
display: none;
background-color: rgba(16, 16, 16, 0.5);
}
</style>
</style>
pages/tabBar/CSS.uvue
浏览文件 @
ed09b91d
<template>
<!-- #ifdef APP -->
<scroll-view style="flex: 1;
background-color: #f8f8f8
" enable-back-to-top="true">
<scroll-view style="flex: 1;" enable-back-to-top="true">
<!-- #endif -->
<view class="uni-container">
<view v-if="!hasLeftWin" class="uni-header-logo">
...
...
pages/tabBar/component.uvue
浏览文件 @
ed09b91d
<template>
<!-- #ifdef APP -->
<scroll-view style="flex: 1;
background-color: #f8f8f8
" enable-back-to-top="true">
<scroll-view style="flex: 1;" enable-back-to-top="true">
<!-- #endif -->
<view class="uni-container">
<view v-if="!hasLeftWin" class="uni-header-logo">
...
...
@@ -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: {
...
...
@@ -113,7 +97,19 @@
// #endif
onReady() {
// #ifdef UNI-APP-X && APP
checkUpdate(this.$refs['upgradePopup'] as UniUpgradeCenterAppComponentPublicInstance)
uni.getPrivacySetting({
success(res) {
if (res.needAuthorization) {
uni.onPrivacyAuthorizationChange((res) => {
if (!res.needAuthorization) {
checkUpdate()
}
})
} else {
checkUpdate()
}
}
})
// #endif
},
onShow() {
...
...
@@ -132,4 +128,4 @@
.item {
margin-bottom: 12px;
}
</style>
</style>
pages/tabBar/generateMenu.uts
浏览文件 @
ed09b91d
...
...
@@ -158,16 +158,5 @@ function addSetTabBarPage(menuItem : MenuItem) {
group: null,
items: []
} as MenuItem)
menuItem.items.push({
id: 'show-privacy-dialog',
name: '隐私政策',
index: 0,
path: 'show-privacy-dialog',
style: {
navigationBarTitleText: '隐私政策弹框'
},
group: null,
items: []
} as MenuItem)
}
}
}
pages/tabBar/template.uvue
浏览文件 @
ed09b91d
<template>
<!-- #ifdef APP -->
<scroll-view style="flex: 1;
background-color: #f8f8f8
" enable-back-to-top="true">
<scroll-view style="flex: 1;" enable-back-to-top="true">
<!-- #endif -->
<view class="uni-container">
<view v-if="!hasLeftWin" class="uni-header-logo">
...
...
uni_modules/uni-pay-x/pages/success/success.uvue
浏览文件 @
ed09b91d
...
...
@@ -40,7 +40,7 @@
adpid: "",
order_no: "",
out_trade_no: "",
total_fee:
null
,
total_fee:
0
,
pay_date: "",
return_url: ""
} as UTSJSONObject,
...
...
@@ -55,9 +55,11 @@
// 监听 - 页面每次【加载时】执行(如:前进)
onLoad(options) {
this.myOptions['adpid'] = options['adpid'];
this.myOptions['order_no'] = options['order_no'];
this.myOptions['order_no'] = options['order_no']
!= null ? options['order_no'] : "-"
;
this.myOptions['out_trade_no'] = options['out_trade_no'];
this.myOptions['total_fee'] = parseFloat(options['total_fee'] as string);
if (options['total_fee'] != null) {
this.myOptions['total_fee'] = parseFloat(options['total_fee'] as string);
}
this.myOptions['pay_date'] = options['pay_date'];
this.myOptions['return_url'] = options['return_url'];
},
...
...
@@ -84,7 +86,7 @@
console.log("ad-error", e);
},
amountFormat(totalFee : number | null) :string{
if (totalFee == null) {
if (totalFee == null
|| totalFee == 0
) {
return "0";
} else {
return (totalFee / 100).toFixed(2)
...
...
uni_modules/uni-upgrade-center-app/changelog.md
浏览文件 @
ed09b91d
## 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-app x 项目升级到 4.31 alpha 后中间有空隙的Bug
## 0.8.3(2024-07-31)
-
修复 部分类型报错
## 0.8.2(2024-07-15)
...
...
uni_modules/uni-upgrade-center-app/package.json
浏览文件 @
ed09b91d
{
"id"
:
"uni-upgrade-center-app"
,
"displayName"
:
"升级中心 uni-upgrade-center - App"
,
"version"
:
"0.
8.3
"
,
"version"
:
"0.
9.0
"
,
"description"
:
"uni升级中心 - 客户端检查更新"
,
"keywords"
:
[
"uniCloud"
,
...
...
@@ -47,8 +47,10 @@
},
"client"
:
{
"App"
:
{
"app-vue"
:
"y"
,
"app-nvue"
:
"y"
"app-vue"
:
"y"
,
"app-nvue"
:
"y"
,
"app-harmony"
:
"u"
,
"app-uvue"
:
"y"
},
"H5-mobile"
:
{
"Safari"
:
"n"
,
...
...
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
浏览文件 @
ed09b91d
此差异已折叠。
点击以展开。
uni_modules/uni-upgrade-center-app/utils/call-check-version.ts
浏览文件 @
ed09b91d
...
...
@@ -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
浏览文件 @
ed09b91d
...
...
@@ -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.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录