将文件引到 [ 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.navigateTo
Taro.navigateTo = (data) => {
if (Taro.getCurrentPages().length > 8) {
return Taro.redirectTo(data) // 大于8次后强制销毁其他页面并重定向
}
return navigateTo(data)
}