Files
wechat_wc/src/utils/themeBackground.ts
T

25 lines
970 B
TypeScript

import Taro from '@tarojs/taro'
/** 实际生效主题对应的窗口/页面背景色 */
export function themePageColor(theme: 'light' | 'dark'): string {
return theme === 'dark' ? '#000000' : '#ffffff'
}
/**
* 同步窗口/页面背景到当前主题:
* - 自定义导航区(状态栏下方、胶囊按钮区域)在 iOS 上由 backgroundColorTop 控制,
* 仅设 backgroundColor 覆盖不到,因此需要同时设置三项
* - 下拉背景文字样式一并切换,避免深色模式下白字看不清
*
* @param bgOverride 传入时使用该背景色(用于强制顶部深色的页面,如商品详情)
*/
export function applyPageBackground(theme: 'light' | 'dark', bgOverride?: string) {
const bg = bgOverride ?? themePageColor(theme)
Taro.setBackgroundColor({
backgroundColor: bg,
backgroundColorTop: bg,
backgroundColorBottom: bg
})
Taro.setBackgroundTextStyle({ textStyle: theme === 'dark' ? 'light' : 'dark' })
}