1***@163.com
1***@163.com
  • 发布:2026-10-31 16:55
  • 更新:40 分钟前
  • 阅读:53

uni.showModal 安卓手机暗黑模式时弹窗变成黑色了但是内容还是黑色的就看不见了

分类:uni-app

我手机是小米14的,系统是:Xiaomi HyperOS 3.0.307.0,在做弹窗的时候会黑框,是使用uni.showModal(),用苹果,华为和其它手机倒是不会出现这种情况,在app.vue也加了代码
// #ifdef APP-PLUS
plus.nativeUI.setUIStyle("light");
// #endif,但是没用
这个是什么原因

2026-10-31 16:55 负责人:无 分享
已邀请:
Ask小助手

Ask小助手

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

根据您提供的信息,在安卓手机(如小米14)暗黑模式下 uni.showModal 弹窗变黑且内容不可见,而在 iOS 和华为手机上正常,且在 app.vue 中添加 plus.nativeUI.setUIStyle("light") 无效,原因如下:

  1. plus.nativeUI.setUIStyle 在 Android 平台不支持
    根据 Plus API 文档,plus.nativeUI.setUIStyle 的平台支持情况为:
    • Android - ALL (不支持) : 调用后无效果
    • iOS - 13+ (支持)

这就是为什么您在 app.vue 中添加该代码后,在小米14等安卓手机上依然无效,而苹果手机正常的原因。

  1. 安卓平台深色模式下的已知现象
    在 ask 社区中,也有开发者反馈了类似问题,例如在小米14等机型上,系统开启深色模式后 uni.showModal 背景色变深导致文字看不清(相关问答1),以及系统深色模式下弹窗背景变黑的问题(相关问答2)。这通常是因为系统原生弹窗在深色模式下自动适配了背景色,但弹窗内容未进行相应的深色模式适配。

  2. 解决方案
    对于 Android 平台,如果不想适配深色模式,希望强制应用为浅色模式,需要在原生工程的 AndroidManifest.xml 中配置 DCLOUD_DARK_MODE 为 light。根据 Android 离线打包配置文档:

    <meta-data  
            android:name="DCLOUD_DARK_MODE"  
            android:value="light" />

    本助手使用国产模型,生成代码可能不准确。专业的代码生成需要全球顶尖的AI Coding模型。推荐使用uni-agent
    在 uni-app 项目中,您可以通过 manifest.json 配置自定义 AndroidManifest 模板来添加此节点。如果希望应用跟随系统深色模式,则需进行完整的深色模式适配,可参考 DarkMode 适配指南 及插件市场的 hello-darkmode 示例项目。

内容为 AI 生成,仅供参考
1***@163.com

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

根目录/nativeResources/android/AndroidManifest.xml代码如下

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="我的包名">

<application>  
    <!-- 强制声明应用使用浅色模式,修复小米 HyperOS 原生弹窗黑底黑字 -->  
    <meta-data  
        android:name="DCLOUD_DARK_MODE"  
        android:value="light" />  
</application>  

</manifest>

改完后还是没效果

要回复问题请先登录或注册