需求背景
很多时候我们需要监听页面上API的变化来应对各种场景,比如监听路由跳转,网络请求等等。例如在自定义组件中点击了播放视频,想在路由跳转的时候暂停播放视频,就可以用uni.addInterceptor()监听各种路由的变化,做出相应的动作。
代码示例
// 在onload或者created生命周期中, 打开页面就开始监听
onLoad() {
uni.addInterceptor('navigateTo', { //监听跳转
success: (e) => {
}
})
uni.addInterceptor('redirectTo', { //监听关闭本页面跳转
success: (e) => {
}
})
uni.addInterceptor('switchTab', { //监听tabBar跳转
success: (e) => {
// 暂停播放视频
this.videoContext.pause()
}
})
uni.addInterceptor('navigateBack', { //监听返回
success: (e) => {
}
})
},
onRead() {
this.videoContext = uni.createVideoContext('myVideo')
}
官方文档
详细参数请查看官方文档。
https://uniapp.dcloud.io/api/interceptor.html