page.js 1.2 KB
Newer Older
fxy060608's avatar
fxy060608 已提交
1 2 3
import {
  initWebview,
  createWebview
fxy060608's avatar
fxy060608 已提交
4 5
} from './webview/index'

fxy060608's avatar
fxy060608 已提交
6
const pages = []
fxy060608's avatar
fxy060608 已提交
7 8

export function getCurrentPages () {
fxy060608's avatar
fxy060608 已提交
9
  return pages
fxy060608's avatar
fxy060608 已提交
10 11 12 13 14 15 16 17 18
}
/**
 * @param {Object} pageVm
 *
 * page.beforeCreate 时添加 page
 * page.beforeDestroy 时移出 page
 *
 * page.viewappear  onShow
 * page.viewdisappear onHide
19
 *
fxy060608's avatar
fxy060608 已提交
20 21 22 23 24 25 26 27
 * navigateTo
 * redirectTo
 *
 *
 *
 *
 *
 *
fxy060608's avatar
fxy060608 已提交
28 29
 */

fxy060608's avatar
fxy060608 已提交
30 31 32
/**
 * 首页需要主动registerPage,二级页面路由跳转时registerPage
 */
fxy060608's avatar
fxy060608 已提交
33 34 35 36
export function registerPage ({
  path,
  webview
}, instanceContext) {
fxy060608's avatar
fxy060608 已提交
37
  const routeOptions = JSON.parse(JSON.stringify(instanceContext.__uniRoutes.find(route => route.path === path)))
fxy060608's avatar
fxy060608 已提交
38 39

  if (!webview) {
fxy060608's avatar
fxy060608 已提交
40
    webview = createWebview(path, instanceContext, routeOptions)
fxy060608's avatar
fxy060608 已提交
41 42
  }

fxy060608's avatar
fxy060608 已提交
43 44 45
  if (process.env.NODE_ENV !== 'production') {
    console.log(`[uni-app] registerPage`, path, webview.id)
  }
fxy060608's avatar
fxy060608 已提交
46

fxy060608's avatar
fxy060608 已提交
47
  initWebview(webview, instanceContext, webview.id === '1' && routeOptions)
fxy060608's avatar
fxy060608 已提交
48

fxy060608's avatar
fxy060608 已提交
49 50 51 52
  const route = path.slice(1)

  webview.__uniapp_route = route

fxy060608's avatar
fxy060608 已提交
53
  pages.push({
fxy060608's avatar
fxy060608 已提交
54
    route,
fxy060608's avatar
fxy060608 已提交
55 56 57
    $getAppWebview () {
      return webview
    },
fxy060608's avatar
fxy060608 已提交
58 59 60 61 62
    $page: {
      id: parseInt(webview.id),
      meta: routeOptions.meta,
      path,
      route
fxy060608's avatar
fxy060608 已提交
63
    }
fxy060608's avatar
fxy060608 已提交
64
  })
fxy060608's avatar
fxy060608 已提交
65 66

  return webview
fxy060608's avatar
fxy060608 已提交
67
}