bridge.js 1.7 KB
Newer Older
1 2 3 4
import {
  decode
} from 'base64-arraybuffer'

fxy060608's avatar
fxy060608 已提交
5
export {
6
  pack,
fxy060608's avatar
fxy060608 已提交
7 8
  unpack,
  invoke
9
} from 'uni-core/service/bridge'
fxy060608's avatar
format  
fxy060608 已提交
10

fxy060608's avatar
fxy060608 已提交
11 12
export function requireNativePlugin (name) {
  return uni.requireNativePlugin(name)
fxy060608's avatar
fxy060608 已提交
13 14
}

fxy060608's avatar
fxy060608 已提交
15 16 17 18 19
/**
 * 触发 service 层,与 onMethod 对应
 */
export function publish (name, res) {
  return UniServiceJSBridge.emit('api.' + name, res)
fxy060608's avatar
fxy060608 已提交
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
}

let lastStatusBarStyle

export function setStatusBarStyle (statusBarStyle) {
  if (!statusBarStyle) {
    const pages = getCurrentPages()
    if (!pages.length) {
      return
    }
    statusBarStyle = pages[pages.length - 1].$page.meta.statusBarStyle
    if (!statusBarStyle || statusBarStyle === lastStatusBarStyle) {
      return
    }
  }
  if (process.env.NODE_ENV !== 'production') {
    console.log(`[uni-app] setStatusBarStyle`, statusBarStyle)
  }

  lastStatusBarStyle = statusBarStyle

  plus.navigator.setStatusBarStyle(statusBarStyle)
42 43
}

fxy060608's avatar
fxy060608 已提交
44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
export function isTabBarPage (path = '') {
  if (!(__uniConfig.tabBar && Array.isArray(__uniConfig.tabBar.list))) {
    return false
  }
  try {
    if (!path) {
      const pages = getCurrentPages()
      if (!pages.length) {
        return false
      }
      const page = pages[pages.length - 1]
      if (!page) {
        return false
      }
      return page.$page.meta.isTabBar
59 60 61
    }
    const route = __uniRoutes.find(route => route.path.slice(1) === path)
    return route && route.meta.isTabBar
fxy060608's avatar
fxy060608 已提交
62 63 64 65 66 67
  } catch (e) {
    if (process.env.NODE_ENV !== 'production') {
      console.log('getCurrentPages is not ready')
    }
  }
  return false
68 69 70 71 72
}

export function base64ToArrayBuffer (data) {
  return decode(data)
}