UNPKG

@ozo/react-rock

Version:

React 移动端开发脚手架,基于CRA3,通用、开箱即用。

65 lines (60 loc) 1.83 kB
/** * @description 导航的类型,及不同类型的跳转处理 * @class Navigator */ class Navigator { // 自定义路由表 navigation = { _blank: { category: 'route100', desc: '新开方式跳转系统自带浏览器', target: '', }, }; /** * @description 根据type的内容查询导航类型及信息 * @param {*}type 广告跳转类型 * @returns 返回航类型及信息 */ queryNavByType = (type) => { return this.navigation[String(type)]; }; /** * @description 执行用户跳转逻辑 * @param {string}routeType 用户跳转的类型 * @param {*}history 内部路由 * @param {string}routeUrl 用户跳转的地址信息 * @param {string}title 用户跳转的页面title * @returns * */ navigate(routeType, { history, routeUrl = '', title = '', token = '' }) { const routeInfo = this.queryNavByType(routeType); // 根据跳转类型,分发跳转 switch (routeInfo.category) { case 'route1': { history.push(routeInfo.target + routeUrl); break; } case 'route2': { history.push(routeInfo.target); break; } case 'route3': { history.push(routeUrl); break; } case 'route100': { // 新开方式跳转系统浏览器 if (!routeUrl) { return false; } window.open(routeUrl, '_blank', 'location=no'); break; } default: { console.log('请输入正确的跳转类型'); } } } } export default new Navigator();