function parseRoutes (config) { __uniRoutes.length = 0 /* eslint-disable no-mixed-operators */ const tabBarList = (config.tabBar && config.tabBar.list || []).map(item => item.pagePath) Object.keys(config.page).forEach(function (pagePath) { const isTabBar = tabBarList.indexOf(pagePath) !== -1 const isQuit = isTabBar || (config.pages[0] === pagePath) const isNVue = !!config.page[pagePath].nvue __uniRoutes.push({ path: '/' + pagePath, meta: { isQuit, isTabBar, isNVue }, window: config.page[pagePath].window || {} }) }) } export function registerConfig (config, Vue) { Object.assign(__uniConfig, config) __uniConfig.viewport = '' __uniConfig.defaultFontSize = '' if (__uniConfig.nvueCompiler === 'uni-app') { __uniConfig.viewport = plus.screen.resolutionWidth __uniConfig.defaultFontSize = 16 } parseRoutes(__uniConfig) if (process.env.NODE_ENV !== 'production') { console.log('[uni-app] registerConfig', __uniConfig) } } let isInitEntryPage = false export function initEntryPage () { if (isInitEntryPage) { return } isInitEntryPage = true let entryPagePath let entryPageQuery const weexPlus = weex.requireModule('plus') if (weexPlus.getRedirectInfo) { const info = weexPlus.getRedirectInfo() || {} entryPagePath = info.path entryPageQuery = info.query ? ('?' + info.query) : '' } else { const argsJsonStr = plus.runtime.arguments if (!argsJsonStr) { return } try { const args = JSON.parse(argsJsonStr) entryPagePath = args.path || args.pathName entryPageQuery = args.query ? ('?' + args.query) : '' } catch (e) {} } if (!entryPagePath || entryPagePath === __uniConfig.entryPagePath) { if (entryPageQuery) { __uniConfig.entryPageQuery = entryPageQuery } return } const entryRoute = '/' + entryPagePath const routeOptions = __uniRoutes.find(route => route.path === entryRoute) if (!routeOptions) { console.error(`[uni-app] ${entryPagePath} not found...`) return } if (!routeOptions.meta.isTabBar) { __uniConfig.realEntryPagePath = __uniConfig.realEntryPagePath || __uniConfig.entryPagePath } __uniConfig.entryPagePath = entryPagePath __uniConfig.entryPageQuery = entryPageQuery if (process.env.NODE_ENV !== 'production') { console.log(`[uni-app] entryPagePath(${entryPagePath + entryPageQuery})`) } }