import { isCurrentPage, getPageHolder } from '../util.js' function setNavigationBar (type, args = {}) { const page = getPageHolder(args.__page__) if (page) { switch (type) { case 'setNavigationBarColor': { const { frontColor, backgroundColor, animation } = args const { duration, timingFunc } = animation if (frontColor) { page.navigationBar.textColor = frontColor === '#000000' ? 'black' : 'white' } if (backgroundColor) { page.navigationBar.backgroundColor = backgroundColor } UniServiceJSBridge.emit('onNavigationBarChange', { textColor: frontColor === '#000000' ? '#000' : '#fff', backgroundColor: page.navigationBar.backgroundColor }) page.navigationBar.duration = duration + 'ms' page.navigationBar.timingFunc = timingFunc } break case 'showNavigationBarLoading': page.navigationBar.loading = true break case 'hideNavigationBarLoading': page.navigationBar.loading = false break case 'setNavigationBarTitle': { const { title } = args page.navigationBar.titleText = title if (isCurrentPage(page)) { // 仅当前页面 document.title = title } UniServiceJSBridge.emit('onNavigationBarChange', { titleText: title }) } break } } return {} } export function setNavigationBarColor (args) { return setNavigationBar('setNavigationBarColor', args) } export function showNavigationBarLoading (args) { return setNavigationBar('showNavigationBarLoading', args) } export function hideNavigationBarLoading (args) { return setNavigationBar('hideNavigationBarLoading', args) } export function setNavigationBarTitle (args) { return setNavigationBar('setNavigationBarTitle', args) }