mh-two-thousand-and-two
2024-04-12 3d2ec2fd0578d3ba0a414b0cc4e4a2ae60878596
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
import {
  parseRedirectInfo
} from './utils'
 
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 {
      path,
      query,
      referrerInfo
    } = parseRedirectInfo()
    if (path) {
      entryPagePath = path
      entryPageQuery = query
    }
    __uniConfig.referrerInfo = referrerInfo
  } 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})`)
  }
}