我手机是小米14的,系统是:Xiaomi HyperOS 3.0.307.0,在做弹窗的时候会黑框,是使用uni.showModal(),用苹果,华为和其它手机倒是不会出现这种情况,在app.vue也加了代码
// #ifdef APP-PLUS
plus.nativeUI.setUIStyle("light");
// #endif,但是没用
这个是什么原因
- 发布:2026-10-31 16:55
- 更新:40 分钟前
- 阅读:53
欢迎到专业群( uni-app 官方技术交流群 1 ) 咨询,群中有相关专业的管理员和群友。
根据您提供的信息,在安卓手机(如小米14)暗黑模式下 uni.showModal 弹窗变黑且内容不可见,而在 iOS 和华为手机上正常,且在 app.vue 中添加 plus.nativeUI.setUIStyle("light") 无效,原因如下:
plus.nativeUI.setUIStyle在 Android 平台不支持
根据 Plus API 文档,plus.nativeUI.setUIStyle的平台支持情况为:- Android - ALL (不支持) : 调用后无效果
- iOS - 13+ (支持)
这就是为什么您在 app.vue 中添加该代码后,在小米14等安卓手机上依然无效,而苹果手机正常的原因。
-
安卓平台深色模式下的已知现象
在 ask 社区中,也有开发者反馈了类似问题,例如在小米14等机型上,系统开启深色模式后uni.showModal背景色变深导致文字看不清(相关问答1),以及系统深色模式下弹窗背景变黑的问题(相关问答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 示例项目。
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>
改完后还是没效果