epni59
epni59
  • 发布:51 分钟前
  • 更新:48 分钟前
  • 阅读:10

【报Bug】【紧急严重】鸿蒙系统,@media (prefers-color-scheme: dark)失效

分类:鸿蒙Next

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: win11

HBuilderX类型: 正式

HBuilderX版本号: 5.07

手机系统: HarmonyOS NEXT

手机系统版本号: HarmonyOS 6.0.0

手机厂商: 华为

手机机型: mate 60

页面类型: vue

vue版本: vue3

打包方式: 云端

项目创建方式: HBuilderX

操作步骤:

预期结果:

实际结果:

bug描述:

@media (prefers-color-scheme: dark) { } ,在鸿蒙手机中测试失效,uni.getSystemInfoSync().theme检测也是空的值。但是退回编辑器4.76,他又正常了。更新到到5.07,就无法检测深色模式了,导致鸿蒙打包无法切换深色模式,应用审核没法过审。

51 分钟前 负责人:无 分享
已邀请:
Ask小助手

Ask小助手 - Ask社区AI助手

欢迎到专业群( uni-app鸿蒙化技术交流群 ) 咨询,群中有相关专业的管理员和群友。

感谢反馈,这是一个关于鸿蒙平台深色模式适配的重要问题。以下是对该反馈的评审分析:

反馈内容完整性评估

已提供的关键信息

  • 明确指出了版本差异:4.76版本正常,5.07版本异常
  • 平台信息完整:HarmonyOS NEXT 6.0.0、Mate 60、Vue3
  • 问题现象描述清晰:CSS媒体查询失效且uni.getSystemInfoSync().theme返回空值

缺失的必要信息

  1. 代码示例:未提供manifest.jsonapp-harmony节点的配置(特别是darkmode字段设置)
  2. 复现步骤:缺少具体的操作步骤(如是否调用了相关API开启深色模式适配)
  3. 预期/实际结果:虽然问题描述清晰,但缺少对比截图或详细的样式表现描述

问题分析与结论

根据知识库记录,该问题成立,且是一个已知的版本行为差异问题。

问题根因
在HBuilderX 5.x版本(包括5.04、5.05、5.07)中,鸿蒙平台的深色模式适配逻辑有所调整。与4.87版本自动适配不同,5.x版本需要显式调用API来激活系统主题监听。

解决方案

请在App.vueonLaunch生命周期中添加以下代码激活自适应系统深色模式:

// #ifdef APP-HARMONY  
plus.nativeUI.setUIStyle('auto')  
// #endif

本助手使用国产模型,生成代码可能不准确。专业的代码生成需要全球顶尖的AI Coding模型。推荐使用uni-agent

同时请确保manifest.json中已正确配置:

{  
  "app-harmony": {  
    "darkmode": true,  
    "themelocation": "theme.json"  
  }  
}

本助手使用国产模型,生成代码可能不准确。专业的代码生成需要全球顶尖的AI Coding模型。推荐使用uni-agent

参考资源

补充建议

  1. 立即验证:请先在App.vue中添加plus.nativeUI.setUIStyle('auto')后重新运行测试
  2. 导航栏适配:如果涉及导航栏和底部导航栏的深色模式切换,请注意当前版本可能存在部分限制(预计后续alpha版本会完善)
  3. 审核准备:鸿蒙应用市场确实对深色模式有严格要求,建议配合theme.json完整配置主题色值

如果按上述方案仍无法解决,请补充提供:

  • 最小复现工程(可上传至GitHub或网盘)
  • manifest.json完整配置截图
  • 真机运行时的详细日志

这样我们可以进一步定位是否为特定机型或特定配置下的兼容性问题。

内容为 AI 生成,仅供参考

要回复问题请先登录注册