uni |
您所在的位置:网站首页 › uni路由拦截 › uni |
官方文档:uni.addInterceptor(STRING, OBJECT) | uni-app官网 uni-app 提供了uni.addInterceptor()拦截器主要用于: 1. 拦截api请求 uni.addInterceptor('request', { invoke(args) { // request 触发前拼接 url args.url = 'https://www.example.com/'+args.url }, success(args) { // 请求成功后,修改code值为1 args.data.code = 1 }, fail(err) { console.log('interceptor-fail',err) }, complete(res) { console.log('interceptor-complete',res) } })2. 一些原生调起操作(如访问相册等操作权限前获取当前设备是否授权来来处理相应操作) 可参考:拦截器应用示例 — 图片选择 3. 比较常见的场景: 如未登录时跳转其他页面都会跳转到登录页让用户先登录 常用的实现方法可能是在uni.navigateTo等路由跳转前去判断用户是否登录,或者是 在打开页面后的onShow()里面去判断用户是否登录,未登录时uni.redirectTo()回到登录页 如果页面使用tabbar 想切换tabbar的时候去判断就可以使用uni.addInterceptor来实现 例子: // 页面拦截tabbar,非登录状态页首页跳转登录页登录 uni.addInterceptor('switchTab', { // tabbar页面跳转前进行拦截 invoke (e) { if (!uni.getStorageSync('STORAGE_KEY_TOKEN') && e.url!="/pages/login/login" && e.url!="/pages/homepage/homepage") { uni.redirectTo({ url: '/pages/login/login' }); return false } else{ return true } }, success (e) { // console.log(e) } }) |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |