Flutter 在Flatter WebView中关闭小米MIUI暗模式

Flutter 在Flatter WebView中关闭小米MIUI暗模式,flutter,webview-flutter,Flutter,Webview Flutter,我正在使用插件,当webview在任何小米的暗模式设备上打开时,它会强制暗模式,我不知道如何避免它 这是我的密码: import 'dart:async'; import 'dart:io'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:webview_flutter/webview_flutter.dart'; class CdsWebVie

我正在使用插件,当webview在任何小米的暗模式设备上打开时,它会强制暗模式,我不知道如何避免它

这是我的密码:

import 'dart:async';
import 'dart:io';

import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:webview_flutter/webview_flutter.dart';

class CdsWebView extends StatefulWidget {
  const CdsWebView({
    Key key,
    @required this.url,
  }) : super(key: key);

  final String url;

  @override
  _CdsWebViewState createState() => _CdsWebViewState();
}

class _CdsWebViewState extends State<CdsWebView> {
  final Completer<WebViewController> _controller =
  Completer<WebViewController>();

  WebViewController _webViewController;
  bool isLoading = true;

  @override
  void initState() {
    super.initState();
    if (Platform.isAndroid) WebView.platform = SurfaceAndroidWebView();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: SafeArea(
        child: Builder(builder: (BuildContext context) {
          return Stack(children: <Widget>[
            WebView(
              initialUrl: widget.url,
              javascriptMode: JavascriptMode.unrestricted,
              onWebViewCreated: (WebViewController webViewController) {
                _controller.complete(webViewController);
                _webViewController = webViewController;
              },
              onPageFinished: (finish) {
                this.setState(() {
                  isLoading = false;
                });
              },
            ),
            isLoading
                ? Container(
              child: Center(
                child: CircularProgressIndicator(
                  valueColor:
                  AlwaysStoppedAnimation<Color>(Colors.red),
                ),
              ),
            )
                : Container()
          ]);
        }),
      ),
    );
  }
}
导入'dart:async';
导入“dart:io”;
进口“包装:颤振/cupertino.dart”;
进口“包装:颤振/材料.省道”;
导入“package:webview_flatter/webview_flatter.dart”;
类CdsWebView扩展StatefulWidget{
const CdsWebView({
关键点,
@需要此.url,
}):super(key:key);
最终字符串url;
@凌驾
_CdsWebViewState createState()=>CdsWebViewState();
}
类_CdsWebViewState扩展状态{
最终完成器控制器=
完成符();
WebViewController _WebViewController;
bool isLoading=true;
@凌驾
void initState(){
super.initState();
如果(Platform.isAndroid)WebView.Platform=SurfaceAndroidWebView();
}
@凌驾
小部件构建(构建上下文){
返回脚手架(
正文:安全区(
子:生成器(生成器:(BuildContext上下文){
返回堆栈(子级:[
网络视图(
initialUrl:widget.url,
javascriptMode:javascriptMode.unrestricted,
onWebViewCreated:(WebViewController WebViewController){
_控制器。完成(webViewController);
_webViewController=webViewController;
},
onPageFinished:(完成){
此.setState(){
isLoading=false;
});
},
),
卸载
?容器(
儿童:中心(
子对象:循环压缩机指示器(
valueColor:
始终停止动画(颜色。红色),
),
),
)
:Container()
]);
}),
),
);
}
}
如果在flutter中无法阻止,那么有没有一种方法可以在webview页面中阻止

它会更改背景和文本颜色,如下所示:

WebView测试页面代码:

<html>
  <head>
  </head>
  <body style="
    display: flex;
    justify-content: center;
    align-items: center;">
    <h1 style="font-family: Arial;">
      My WebView Page
    </h1>
  </body>
</html>

我的网络视图页面

强制黑暗主题的实现使得开发者更容易切换到黑暗主题,给用户一个统一的体验

它分析以灯光为主题的应用程序的每个视图,并在将其绘制到屏幕之前自动应用一个黑暗主题

在基于Android 10或更高版本的MIUI中,应用程序被迫使用其黑色主题,这可能会导致外观难看的被迫黑色webview和pwa应用程序,如“LinkedIn Go”

要关闭此功能,请转到android文件夹,然后转到
\app\src\main\res\values\themes.xml
文件。将forceDarkAllowed设置为false
,如下所示

false
如果这不起作用,请在
values/themes.xml
中执行相同的操作。这应该可以解决问题

如果您仍然感到困惑,应该把它放在哪里,您的最终代码应该是这样的-


@颜色/蓝色\灰色\ 500
@颜色/蓝色\灰色\ 700
@颜色/白色
@颜色/灰色200
@颜色/灰色\u 700
@颜色/黑色
假的