Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DCloud
hello uni-app x
提交
379e7373
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看板
提交
379e7373
编写于
7月 12, 2024
作者:
H
hdx
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
test: 新增 Interceptor switchTab 测试
上级
284984a6
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
64 addition
and
8 deletion
+64
-8
pages/API/interceptor/interceptor.test.js
pages/API/interceptor/interceptor.test.js
+18
-1
pages/API/interceptor/interceptor.uvue
pages/API/interceptor/interceptor.uvue
+46
-7
未找到文件。
pages/API/interceptor/interceptor.test.js
浏览文件 @
379e7373
...
...
@@ -55,5 +55,22 @@ describe('interceptor', () => {
const
currentPage
=
await
program
.
currentPage
()
expect
(
currentPage
.
path
).
toBe
(
'
pages/API/interceptor/page1
'
)
await
program
.
navigateBack
()
})
})
it
(
'
addSwitchTabInterceptor
'
,
async
()
=>
{
await
page
.
callMethod
(
'
addSwitchTabInterceptor
'
)
await
page
.
callMethod
(
'
switchTab
'
)
const
currentPage
=
await
program
.
currentPage
()
expect
(
currentPage
.
path
).
toBe
(
'
pages/tabBar/API
'
)
})
it
(
'
removeSwitchTabInterceptor
'
,
async
()
=>
{
const
currentPage1
=
await
program
.
navigateTo
(
PAGE_PATH
)
await
currentPage1
.
callMethod
(
'
addSwitchTabInterceptor
'
)
await
currentPage1
.
callMethod
(
'
removeSwitchTabInterceptor
'
)
await
currentPage1
.
callMethod
(
'
switchTab
'
)
const
currentPage2
=
await
program
.
currentPage
()
expect
(
currentPage2
.
path
).
toBe
(
'
pages/tabBar/component
'
)
})
})
pages/API/interceptor/interceptor.uvue
浏览文件 @
379e7373
...
...
@@ -4,14 +4,15 @@
<button @click="removeInterceptor">移除路由拦截器</button>
<text>点击下方按钮{{ msg }}</text>
<button @click="navigateTo">navigatorTo API跳转到测试页面</button>
<navigator url="./page1"><button class="navigatorButton">
navigator组件跳转到测试页面
</button></navigator>
<navigator url="./page1">
<button class="navigatorButton">navigator组件跳转到测试页面</button>
</navigator>
<button class="navigatorButton" @click="switchTab">switchTab API</button>
</view>
</template>
<script>
const
i
nterceptor = {
const
navigateToI
nterceptor = {
invoke: function (options : NavigateToOptions) {
console.log('拦截 navigateTo 接口传入参数为:', options)
const url = './page2'
...
...
@@ -30,6 +31,23 @@
console.log('拦截 navigateTo 接口 complete 返回参数为:', res)
}
} as Interceptor
const switchTabInterceptor = {
invoke: function (options : SwitchTabOptions) {
console.log('拦截 switchTab 接口传入参数为:', options)
options.url = 'pages/tabBar/API'
},
success: function (res : SwitchTabSuccess) {
console.log('拦截 switchTab 接口 success 返回参数为:', res)
},
fail: function (err : SwitchTabFail) {
console.log('拦截 switchTab 接口 fail 返回参数为:', err)
},
complete: function (res : SwitchTabComplete) {
console.log('拦截 switchTab 接口 complete 返回参数为:', res)
}
} as Interceptor
export default {
data() {
return {
...
...
@@ -39,21 +57,28 @@
beforeUnmount() {
// 移除 navigateTo 所有拦截器
uni.removeInterceptor('navigateTo')
uni.removeInterceptor('switchTab')
},
methods: {
addInterceptor() {
uni.addInterceptor('navigateTo',
i
nterceptor)
uni.addInterceptor('navigateTo',
navigateToI
nterceptor)
uni.showToast({
title: '页面跳转已拦截'
title: '页面跳转
/切换tabbar
已拦截'
})
this.msg = ",路由被劫持到测试页面2"
},
removeInterceptor() {
uni.removeInterceptor('navigateTo',
i
nterceptor)
uni.removeInterceptor('navigateTo',
navigateToI
nterceptor)
uni.showToast({
title: '拦截器已移除'
})
this.msg = "会跳转到测试页面1"
},
addSwitchTabInterceptor() {
uni.addInterceptor('switchTab', switchTabInterceptor)
},
removeSwitchTabInterceptor() {
uni.removeInterceptor('switchTab', switchTabInterceptor)
},
navigateTo() {
uni.navigateTo({
...
...
@@ -68,6 +93,20 @@
console.log('res:', res)
}
})
},
switchTab() {
uni.switchTab({
url: 'pages/tabBar/component',
success(res) {
console.log('res:', res)
},
fail(err) {
console.error('err:', err)
},
complete(res) {
console.log('res:', res)
}
})
}
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录