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

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

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

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

fxy060608's avatar
fxy060608 已提交
48
  const route = path.slice(1)
fxy060608's avatar
fxy060608 已提交
49
  pages.push({
fxy060608's avatar
fxy060608 已提交
50
    route,
fxy060608's avatar
fxy060608 已提交
51 52 53
    $getAppWebview () {
      return webview
    },
fxy060608's avatar
fxy060608 已提交
54 55 56 57 58
    $page: {
      id: parseInt(webview.id),
      meta: routeOptions.meta,
      path,
      route
fxy060608's avatar
fxy060608 已提交
59
    }
fxy060608's avatar
fxy060608 已提交
60
  })
fxy060608's avatar
fxy060608 已提交
61 62

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