navigate-to.js 938 字节
Newer Older
fxy060608's avatar
fxy060608 已提交
1 2 3 4
import {
  parseQuery
} from 'uni-shared'

fxy060608's avatar
fxy060608 已提交
5 6 7 8
import {
  showWebview
} from './util'

fxy060608's avatar
fxy060608 已提交
9 10 11 12
import {
  setStatusBarStyle
} from '../../bridge'

fxy060608's avatar
init v3  
fxy060608 已提交
13 14 15 16 17 18 19 20 21 22 23
import {
  registerPage
} from '../../framework/page'

import {
  navigate
} from '../../framework/navigator'

function _navigateTo ({
  path,
  query,
fxy060608's avatar
fxy060608 已提交
24 25 26 27 28 29 30 31
  animationType,
  animationDuration
}) {
  UniServiceJSBridge.emit('onAppRoute', {
    type: 'navigateTo',
    path
  })
  showWebview(
fxy060608's avatar
init v3  
fxy060608 已提交
32
    registerPage({
fxy060608's avatar
fxy060608 已提交
33
      path,
fxy060608's avatar
fxy060608 已提交
34 35
      query,
      openType: 'navigate'
fxy060608's avatar
fxy060608 已提交
36 37 38 39
    }),
    animationType,
    animationDuration
  )
fxy060608's avatar
fxy060608 已提交
40
  setStatusBarStyle()
fxy060608's avatar
init v3  
fxy060608 已提交
41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
}

export function navigateTo ({
  url,
  animationType,
  animationDuration
}) {
  const urls = url.split('?')
  const path = urls[0]
  const query = parseQuery(urls[1] || '')
  navigate(path, function () {
    _navigateTo({
      path,
      query,
      animationType,
      animationDuration
    })
  })
fxy060608's avatar
fxy060608 已提交
59
}