uni

您所在的位置:网站首页 uni路由拦截 uni

uni

2024-02-19 03:15| 来源: 网络整理| 查看: 265

官方文档: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