Flutter 在Flatter WebView中关闭小米MIUI暗模式
我正在使用插件,当webview在任何小米的暗模式设备上打开时,它会强制暗模式,我不知道如何避免它 这是我的密码: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
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
@颜色/黑色
假的