63 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
			
		
		
	
	
			63 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
import config from "./config.js";
 | 
						||
const initApp = function (vm) {
 | 
						||
  /**
 | 
						||
   * 页面跳转拦截器
 | 
						||
   */
 | 
						||
  let that = vm;
 | 
						||
  let list = ["navigateTo", "redirectTo", "reLaunch", "switchTab"];
 | 
						||
  list.forEach((item) => {
 | 
						||
    //用遍历的方式分别为,uni.navigateTo,uni.redirectTo,uni.reLaunch,uni.switchTab这4个路由方法添加拦截器
 | 
						||
    uni.addInterceptor(item, {
 | 
						||
      invoke(e) {
 | 
						||
        // 调用前拦截
 | 
						||
        //获取用户的token
 | 
						||
        // console.log(e)
 | 
						||
        const token = that.vuex_token,
 | 
						||
          //获取要跳转的页面路径(url去掉"?"和"?"后的参数)
 | 
						||
          url = e.url.split("?")[0];
 | 
						||
        let notNeed = config.whiteList.includes(url);
 | 
						||
        // 如果在whiteList里面就不需要登录
 | 
						||
        // console.log(notNeed)
 | 
						||
 | 
						||
        if (notNeed) {
 | 
						||
          return e;
 | 
						||
        } 
 | 
						||
        else {
 | 
						||
          //需要登录
 | 
						||
          if (token == "") {
 | 
						||
            // uni.showToast({
 | 
						||
            //     title: '请先登录',
 | 
						||
            //     icon: 'none'
 | 
						||
            // })
 | 
						||
            // uni.navigateTo({
 | 
						||
            //     url: config.loginPage
 | 
						||
            // })
 | 
						||
 | 
						||
            // 先注释
 | 
						||
            // uni.navigateTo({
 | 
						||
            //   url: "/pages/login/login/index",
 | 
						||
            // });
 | 
						||
            // return false;
 | 
						||
            return e;
 | 
						||
          } else {
 | 
						||
            return e;
 | 
						||
          }
 | 
						||
        }
 | 
						||
      },
 | 
						||
      fail(err) {
 | 
						||
        // 失败回调拦截
 | 
						||
        console.log(err);
 | 
						||
        // if (Debug) {
 | 
						||
        // uni.showModal({
 | 
						||
        //     content: JSON.stringify(err),
 | 
						||
        //     showCancel: false
 | 
						||
        // });
 | 
						||
        // }
 | 
						||
      },
 | 
						||
    });
 | 
						||
  });
 | 
						||
};
 | 
						||
export default {
 | 
						||
  initApp: initApp,
 | 
						||
};
 |