diff --git a/src/platforms/app-plus/service/api/ui/navigation-bar.js b/src/platforms/app-plus/service/api/ui/navigation-bar.js index 631723ee4adbee1f5ed6157316fbfa74744686f2..8c5c9e1bc7f3273a0cf4004006efed061d885a4d 100644 --- a/src/platforms/app-plus/service/api/ui/navigation-bar.js +++ b/src/platforms/app-plus/service/api/ui/navigation-bar.js @@ -40,6 +40,15 @@ export function hideNavigationBarLoading () { } } +function setPageMeta (statusBarStyle) { + const pages = getCurrentPages() + if (!pages.length) { + return + } + // 框架内部页面跳转会从这里获取style配置 + pages[pages.length - 1].$page.meta.statusBarStyle = statusBarStyle +} + export function setNavigationBarColor ({ frontColor, backgroundColor @@ -53,12 +62,17 @@ export function setNavigationBarColor ({ if (backgroundColor) { styles.backgroundColor = backgroundColor } - plus.navigator.setStatusBarStyle(frontColor === '#000000' ? 'dark' : 'light') + const statusBarStyle = frontColor === '#000000' ? 'dark' : 'light' + plus.navigator.setStatusBarStyle(statusBarStyle) + + // 用户调用api时同时改变当前页配置,这样在系统调用设置时,可以避免覆盖用户设置 + setPageMeta(statusBarStyle) + const style = webview.getStyle() - if (style && style.titleNView) { - if (style.titleNView.autoBackButton) { - styles.backButton = styles.backButton || {} - styles.backButton.color = frontColor + if (style && style.titleNView) { + if (style.titleNView.autoBackButton) { + styles.backButton = styles.backButton || {} + styles.backButton.color = frontColor } webview.setStyle({ titleNView: styles @@ -71,4 +85,4 @@ export function setNavigationBarColor ({ return { errMsg: 'setNavigationBarColor:fail' } -} +}