在鸿蒙Next(HarmonyOS NEXT)中,可以通过Configuration类获取当前系统的颜色模式,判断是否为黑夜模式(深色模式)。具体步骤如下:
-
导入相关模块:
import { Configuration } from '[@ohos](/user/ohos).app.ability.Configuration';
import { common } from '[@ohos](/user/ohos).app.ability.common';
-
获取当前配置:
在Ability或UIAbilityContext中,通过config属性获取Configuration对象:
let context: common.UIAbilityContext = ...; // 获取UIAbilityContext
let config: Configuration = context.config;
-
判断颜色模式:
检查colorMode属性是否为ColorMode.DARK:
import { Configuration } from '[@ohos](/user/ohos).app.ability.Configuration';
let isDarkMode: boolean = (config.colorMode === Configuration.ColorMode.DARK);
console.log('当前是否为黑夜模式:', isDarkMode);
完整示例(在Ability的onWindowStageCreate中):
import { UIAbility } from '[@ohos](/user/ohos).app.ability.UIAbility';
import { Configuration } from '[@ohos](/user/ohos).app.ability.Configuration';
import { window } from '[@ohos](/user/ohos).window';
export default class EntryAbility extends UIAbility {
onWindowStageCreate(windowStage: window.WindowStage) {
let config: Configuration = this.context.config;
let isDarkMode = (config.colorMode === Configuration.ColorMode.DARK);
console.log('黑夜模式状态:', isDarkMode); // 输出:true或false
}
}
注意事项:
- 确保在UIAbility上下文有效时获取配置(如生命周期回调中)。
- 若需要动态监听模式变化,可通过
on('configurationUpdate')事件实现。
此方法直接使用系统API,无需额外权限,适用于应用内适配深色主题的场景。