HarmonyOS鸿蒙Next中arkts开发在系统为深色模式时,获取到的是亮色模式

HarmonyOS鸿蒙Next中arkts开发在系统为深色模式时,获取到的是亮色模式 在UIAbility的onWindowxxxx那个函数里面获取的

let colorMode = this.context.configuration.colorMode

在深色模式下得到的结果是1即亮色模式
arkts到现在连这个都获取错误吗?

而且使用EnvironmentCallback注册configUpdate回调,切换深色模式时也没有反应
使用mediaQuery注册dark-mode: true回调,切换深色模式没有反应
可以说应用完全无法对深色模式做出任何反应

也找不到app.json5、module.json5、build-profile.json5上有任何colorMode属性的设置(因为类WEB范式是有这个属性设置的,按理ETS也应该有),也没有configChange属性,无法设置应用感知何种环境变化(在API6的config.json里ability是可以设置这个属性的)


更多关于HarmonyOS鸿蒙Next中arkts开发在系统为深色模式时,获取到的是亮色模式的实战教程也可以访问 https://www.itying.com/category-93-b0.html

8 回复

原来是arkTS的bug吗?想做个跟随系统颜色模式变化的效果,各种监听或者限定词目录方案都试了还是不行,请问楼主后来有结果了吗

更多关于HarmonyOS鸿蒙Next中arkts开发在系统为深色模式时,获取到的是亮色模式的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


这个有解决吗?

一样的问题,请问楼主有解决方案没?

我也遇到这个问题,

我也遇到这个问题,

好像这个是3.1的Bug,之前有提过,应该在下个版本修复。

我在4.0测试的,依旧不行,

在HarmonyOS鸿蒙Next中,使用ArkTS开发时,若系统处于深色模式,但获取到的是亮色模式,可能是由于未正确监听或应用系统的深色模式设置。ArkTS提供了@ohos.app.ability.Configuration模块来获取系统的配置信息,包括当前的UI模式。可以通过Configuration.ColorMode来获取系统的颜色模式,ColorMode.COLOR_MODE_DARK表示深色模式,ColorMode.COLOR_MODE_LIGHT表示亮色模式。在应用启动时或系统配置变化时,应通过onConfigurationUpdate回调来更新应用的UI模式。确保在获取颜色模式时,正确处理了Configuration.ColorMode的值,并根据该值动态调整应用的UI主题。如果未正确监听或应用此设置,可能导致获取到的模式与系统实际模式不一致。

在HarmonyOS鸿蒙Next中,如果使用ArkTS开发时,系统为深色模式但获取到的是亮色模式,可能是由于未正确监听系统主题变化或未适配深色模式。可以通过AppStorageEnvironment获取当前系统主题,并在onAppearonChange中动态更新UI。确保在build方法中根据系统主题设置相应的样式。

回到顶部