将文件引到 [ src/main.ts ] 中,即可
常见应用场景如:未登录、权限不足、埋点等 …
import Taro from "@tarojs/taro";// import store from "../store";const whiteUrlList = ["/pages/login/index"]; // 存放步需要拦截的路由地址const routerHandle = {apply(target, object, args) {let url;if (args && args[0]) {url = args[0].url;}if (!whiteUrlList.includes(url)) {// 可以用于判断未登录步能访问,或者没权限步能访问,自己发挥}return target(...args);}};Taro.switchTab = new Proxy(Taro.switchTab, routerHandle);Taro.reLaunch = new Proxy(Taro.reLaunch, routerHandle);Taro.redirectTo = new Proxy(Taro.redirectTo, routerHandle);Taro.navigateTo = new Proxy(Taro.navigateTo, routerHandle);Taro.navigateBack = new Proxy(Taro.navigateBack, routerHandle);
防止存在的页面过多导致卡死。
const navigateTo = Taro.navigateToTaro.navigateTo = (data) => {if (Taro.getCurrentPages().length > 8) {return Taro.redirectTo(data) // 大于8次后强制销毁其他页面并重定向}return navigateTo(data)}
