在 Ionic 中禁用深色主题

Ald*_*reo 10 android ionic-framework android-dark-theme

我正在设计一个 Ionic 应用程序,无论用户是否启用了深色主题,我都希望它具有白色背景和黑色文本。

这就是我要的: 禁用深色主题

但是,当我在 Android 手机上启用深色主题时,它会自动转换为:

启用深色主题

我想防止这种情况发生。我在网上搜索并找到了许多描述如何应用黑暗主题的文章,但我没有找到有关禁用它的任何信息。

我想到的一种解决方案是明确启用深色主题,然后为深色主题设置与浅色主题相同的颜色。但是,我认为这种方法可能是不可取的,因为它涉及编写大量冗余代码。

你能想到任何替代解决方案吗?

seb*_*ras 17

删除深色主题的一种方法是编辑variables.scss文件并删除此样式规则:

@media (prefers-color-scheme: dark) {
  ...
}
Run Code Online (Sandbox Code Playgroud)

当用户在设备上选择深色主题时,该媒体查询会更改 CSS 自定义属性的所有颜色。

另请查看文件中的color-scheme元标记index.html

<meta name="color-scheme" content="light dark" />
Run Code Online (Sandbox Code Playgroud)

您可以在Ionic Docs 中找到有关它的更多信息

  • 不幸的是,我一直没能解决它。这似乎是一个仅出现在小米智能手机上的问题,并且与它们专门处理黑暗主题的方式有关。 (2认同)

Kir*_*kov 11

对于 Ionic 6,您需要删除variables.css或注释掉此块:

@media (prefers-color-scheme: dark) { ... }

这为我解决了。

设置<meta name="color-scheme" content="light" />没有帮助。


小智 7

在这种情况下,当应用无法识别其代码上的暗模式支持时,小米 MIUI 会强制使用“尽力而为”暗模式。也就是说,基本上每个白色都会变成黑色,反之亦然,但也会自动变暗一些其他颜色。

为了避免这种情况,只需“通知”MIUI我们的应用程序兼容暗模式,即使没有任何额外的变化,所以实际上暗模式和亮模式是一样的,但MIUI不会干扰颜色的应用程序。

只需放入<head>下一行:

<meta name="color-scheme" content="light dark" />
Run Code Online (Sandbox Code Playgroud)

重要提示:现在您的应用程序将与暗模式兼容,因此请小心设置组件的每种颜色和背景,如果不是并且您使用默认值,请记住暗模式和亮模式的默认值不同.


Hér*_*oso 6

转到您的index.html结束集:

<meta name="color-scheme" content="light" />
Run Code Online (Sandbox Code Playgroud)

它强制手机使用默认的灯光模式样式