25 lines
970 B
TypeScript
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' })
|
|
}
|