You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter WebView在小米设备被强制暗黑模式,配置forceDarkAllowed无效如何解决

小米设备WebView强制暗黑模式适配解决方案

你已配置的全局forceDarkAllowed未生效是MIUI的特有底层逻辑导致的,MIUI对WebView的暗黑强制适配走单独的控制开关,可按以下步骤逐步配置解决:


1. 新增WebView专属暗黑控制配置

在android/app/src/main/res/xml/目录下新建webview_config.xml文件(目录不存在则先手动创建),内容如下:

<?xml version="1.0" encoding="utf-8"?>
<webview>
    <dark-mode>false</dark-mode>
</webview>

2. 清单文件新增元数据配置

打开android/app/src/main/AndroidManifest.xml,在<application>标签下添加如下配置:

<meta-data
    android:name="android.webkit.WebView.EnableDarkMode"
    android:value="false" />
<meta-data
    android:name="android.webkit.WebView.ForceDarkMode"
    android:value="false" />

3. WebView初始化时动态关闭强制暗黑

如果你是自定义原生WebView,在初始化阶段添加如下代码:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
    webView.getSettings().setForceDark(WebSettings.FORCE_DARK_OFF);
}
// 适配小米特有API
try {
    Method method = WebView.class.getMethod("setForceDarkAllowed", boolean.class);
    method.invoke(webView, false);
} catch (Exception e) {
    // 非小米设备无该方法,直接忽略异常
}

如果是Flutter项目使用webview_flutter插件,可升级到4.0+版本,该版本已内置小米WebView暗黑适配逻辑,也可以自行通过平台通道调用上述原生代码执行。

4. H5端兜底适配

如果上述原生配置仍不生效,在WebView加载的H5页面head标签中添加如下meta标签:

<meta name="color-scheme" content="light">
<meta name="supported-color-schemes" content="light">

所有配置修改完成后需卸载原有应用重装,避免MIUI缓存旧配置导致生效失败。


内容的提问来源于stack exchange,提问作者abdelfattah Hilmi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 06:06:03