intercepción de ruta uni-app

Crear un nuevo auth.js

/**
 * @description función de almacenamiento de permisos
 */
constauthorizationKey = 'Autorización'

función de exportación getAuthorization() {   return uni.getStorageSync(authorizationKey) }

función de exportación setAuthorization(autorización) {   return uni.setStorageSync(autorizaciónClave, autorización) }

función de exportación removeAuthorization(autorización) {   return uni.removeStorageSync(authorizationKey) }

Nueva ruta.js

importar {getAuthorization} desde '@/utils/auth.js'

// Lista blanca
const whiteList = [
  '/', // Tenga en cuenta que la página de entrada debe escribir directamente '/'
  '/pages/Login/Login'
]

export default async function() {   const list = ['navigateTo', 'redirectTo', 'reLaunch', 'switchTab']   // Los métodos transversales son uni.navigateTo, uni.redirectTo, uni.reLaunch, uni. métodos de switchTab agregar interceptores   list.forEach(item => {     uni.addInterceptor(item, {       invocar(e) {         // Obtener la ruta de la página a ser redirigida (url después de eliminar los parámetros "?" y "?")         const url = e.url.split('?')[0]         consola.log('url', url)







        // Determinar si la ventana actual es una lista blanca, si es así, no redirigir la ruta
        dejar pasar
        if (whiteList) {           pass = whiteList.some((item) => {             if (typeof (item) === 'object' && elemento.patrón) {               devolver elemento.patrón.prueba(url)             }             devolver url === elemento           })         }






        // No incluido en la lista blanca ni token
        if (!pass && !getAuthorization()) {           uni.showToast({             title: 'Inicie sesión primero',             icono: 'ninguno'           })           uni.navigateTo({             url: "/pages/ Iniciar sesión /Login"           })           return false         }         return e       },       fail(err) { // error en la intercepción de devolución de llamada         console.log(err)       }     })   }) }
















APP.ver

import routingIntercept from '@/router/route.js'
    export default {
        onLaunch: function() {
            console.log('App Launch');
            // Interceptación unificada de rutas para realizar enrutamiento navegación guardia router.beforeEach function
            routingIntercept()
        } ,
        onShow: función() {
            consola.log('Aplicación Mostrar')
        },
        onHide: función() {
            consola.log('Aplicación Ocultar')
        }
    }

Supongo que te gusta

Origin blog.csdn.net/qq_38687592/article/details/129299566
Recomendado
Clasificación