x***@163.com
x***@163.com
  • 发布:2026-03-14 18:37
  • 更新:2026-03-14 18:50
  • 阅读:14

鸿蒙bug:uni.onThemeChange不执行,提示canIUse ...CryptoExtension supported is false

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: Windows 11 IoT 企业版 LTSC 24H2

HBuilderX类型: 正式

HBuilderX版本号: 5.03

手机系统: HarmonyOS NEXT

手机系统版本号: HarmonyOS 6.0.0

手机厂商: 华为

手机机型: nova 14

页面类型: vue

vue版本: vue3

打包方式: 云端

项目创建方式: HBuilderX

示例代码:

uni.onThemeChange( (res) => {
console.log('测试');
console.log(res);
});

操作步骤:

uni.onThemeChange( (res) => {
console.log('测试');
console.log(res);
});

预期结果:

手机切换"深色模式"时,执行输出提示:测试和res结果.

实际结果:

手机切换"深色模式"时,uni.onThemeChange内代码未执行.每个页面都会报错:canIUse SystemCapability.Security.Huks.CryptoExtension supported is false

bug描述:

鸿蒙升级到新版6.0.0.130后一直报错:canIUse SystemCapability.Security.Huks.CryptoExtension supported is false;手机切换"深色模式"时uni.onThemeChange函数在鸿蒙商完全无用.uni.onThemeChange( (res) => {
console.log('测试');
console.log(res);
}); 这段代码在鸿蒙端不会执行.

2026-03-14 18:37 负责人:无 分享
已邀请:
x***@163.com

x***@163.com (作者)

我想说的是手机切换"深色模式"时,uni.onThemeChange代码不执行的问题.不是主题适配问题.代码完全没变,这是升级最新版的鸿蒙系统后出现的问题.
这个错误 canIUse SystemCapability.Security.Huks.CryptoExtension supported is false 也是升级新版鸿蒙出再的问题.

Ask小助手

Ask小助手

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

这个Bug反馈的内容基本完整,但存在关键信息缺失,且报错信息与功能问题可能存在混淆。以下是我的详细评审意见:

反馈内容完整性评价:

  1. 环境信息:提供了较完整的运行环境(HBuilderX 5.03正式版、HarmonyOS 6.0.0、Vue3),但缺少关键的manifest.json配置信息。根据知识库文档,App端使用暗黑模式需要在manifest.json中开启相关配置,反馈中未提及是否已配置"darkmode": true

  2. 代码示例:提供的代码示例过于简单,虽然能直接运行,但缺少上下文(如在哪个生命周期中调用、是否先判断了当前主题模式等)。

  3. 复现步骤:描述不够详细。仅提供代码未说明如何操作复现(如:是通过系统设置切换主题?还是期望启动时触发?)。根据知识库,uni.onThemeChange需要在系统主题切换时才会触发回调,启动时不会自动触发。

  4. 报错信息分析:反馈中提到的canIUse SystemCapability.Security.Huks.CryptoExtension supported is false报错与uni.onThemeChange功能无直接关联,该报错指向鸿蒙系统的密钥管理(Huks)能力,可能是鸿蒙6.0.0.130版本的新限制或证书配置问题。这部分报错信息需要单独排查,不应与主题切换回调问题混为一谈。

Bug是否成立的判断:

根据知识库文档,HarmonyOS平台在HBuilderX 4.81-alpha版本已修复运行期间onThemeChange不触发的问题。用户使用的5.03版本理论上已包含该修复。

但需注意以下前提条件(来自知识库):

  • App端需要开启暗黑模式,参考文档uni-app 暗黑模式
  • 该回调仅在系统主题切换时触发,启动时不会触发

需要用户补充的信息:

  1. 请提供manifest.json中harmonyos节点下的完整配置,确认是否已添加"darkmode": true配置。

  2. 请确认测试方式:是通过系统设置手动切换深色/浅色模式来测试的吗?还是在App启动时期望自动触发?(启动时不会触发,需监听系统切换)

  3. 关于CryptoExtension报错,知识库中暂未找到相关信息,建议检查:

    • 鸿蒙项目的签名证书配置是否正常
    • 是否在harmony-configs中配置了特殊的权限
    • 该报错是否影响App正常启动(如不影响,可能是系统级别的能力检测,可暂时忽略)

建议的验证步骤:

建议先按照hello-darkmode示例项目验证功能是否正常。如果示例项目运行正常,请对比检查贵项目的manifest.json配置差异。

如确认配置无误仍无法触发,建议升级到最新的HBuilderX Alpha版本(当前知识库显示最新为5.02,但用户已使用5.03正式版)进行验证,或提供一个可复现的demo项目以便进一步排查。

内容为 AI 生成,仅供参考

要回复问题请先登录注册