Android上的Opera Touch浏览器正在使用Flutter创建的网站上应用暗主题样式,用于启用暗主题的设备。
似乎所有Text
小部件都发生了更改,例如从黑色变为白色,但像Container
这样的小部件的背景并不总是发生更改。这使得网页无法读取。
有没有办法在Flutter中禁用它,比如不让浏览器应用自己的主题?
我试着把主题设定得很轻,但无济于事。
MaterialApp(
title: webpageTitle,
themeMode: ThemeMode.light,
darkTheme: ThemeData(brightness: Brightness.light)
...
)
我不知道歌剧中的黑人主题"扩展";,但我看到了我使用的一些chrome扩展的一些源代码,通常他们所做的是应用全局";。"反转";,或者循环整个网页元素,并以选择性的方式更改css/应用程序反转。
既然扑动无法控制这种行为,那就没有办法了。。至少在飞镖中没有。
你可以在应用程序中应用深色主题,并将其设置为默认主题。这可能是一个简单的方法。
您还可以对opera执行的脚本进行逆向工程,并通过禁用变量或重写函数来使用自己的javascript进行对抗,否则脚本将无法更改应用程序的颜色。
您可以使用此插件将javascript直接包含在您的web应用程序中。
我会使用第一个选项,因为大多数扩展都不能提供一个好的黑暗主题,所以最好是你自己实现它。或者甚至使用javascript来检查脚本使用的变量,如果它们存在,你可以从javascript调用你的应用程序来启用黑暗主题//向用户显示一个警告,即该应用程序不能很好地使用该扩展。
这将是一个反复出现的问题,在未来的网页应用程序。检查这个答案,尽管它只适用于chrome扩展,也许有一天会有一个类似于anti-dblock 的anti-dark脚本
派对迟到了,但帮助我的是用canvaskit渲染应用程序。html渲染必须属于前面的评论者提到的问题,即浏览器浏览和更改CSS。canvaskit只是绘制UI。尽管那样你就必须处理等待,加载更长的网络应用程序。但是,Flutter Forward提到未来将减少40%的负载。