- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用了flutter_webview_plugin
,并且正在更改屏幕以显示错误消息和使用setState
的重新加载按钮(此按钮适用于errorState
侦听器设置的标志onHttpError
)。当发生错误时,它将起作用并显示错误消息,但是当再次发生相同的错误时,侦听器将不会检测到该错误。
(要重现:wifi处于打开状态,我打开应用程序,加载了Webview。然后按Web View 上的某些按钮进行导航,但出现错误。现在,我连接互联网并按重新加载按钮,它可以正常工作并加载网站。那,我再次断开互联网连接,然后按一些按钮,这次错误没有出现,并转到网页不可用)
初始状态:
void initState() {
_onHttpError = flutterWebviewPlugin.onHttpError.listen(
(WebViewHttpError error) => {
print("ERROR Listener" + error.toString()),
setState(() {
errorState = true;
}),
print("error state on listen: $errorState")
},
);
super.initState();
}
void _onReload() async {
Future<ApiResponse> apiResponse =
fetchData(widget._username, widget._password);
var response = await apiResponse;
print("API RESPONSE = status: " +
response.status.toString() +
", message: " +
response.message.toString());
if (response.status == "true") {
setState(() {
flutterWebviewPlugin.reload();
errorState = false;
});
} else {
setState(() {
errorState = true;
});
}
print("error state on reload: $errorState");
}
Widget build(BuildContext context) {
print("error state on build: $errorState");
return SafeArea(
child: errorState
? Scaffold(
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Padding(
padding: const EdgeInsets.all(16.0),
child: Text(
"No Internet, Please try again.",
style: TextStyle(fontSize: 16),
),
),
RaisedButton(
onPressed: () {
_onReload();
},
child: Text("Reload"),
)
],
),
))
: WebviewScaffold(
url: url,
),
);
}
}
最佳答案
您可以尝试使用我的插件flutter_inappwebview,它是Flutter插件,允许您添加内联WebView或打开应用程序内浏览器窗口,并具有许多事件,方法和选项来控制WebView。
它具有onLoadError
和onLoadHttpError
之类的事件:
onLoadError
:WebView在加载URL时遇到错误时触发该事件。 onLoadHttpError
:WebView主页接收到HTTP错误时触发事件。 import 'dart:async';
import 'package:flutter/material.dart';
import 'package:flutter_inappwebview/flutter_inappwebview.dart';
Future main() async {
WidgetsFlutterBinding.ensureInitialized();
runApp(new MyApp());
}
class MyApp extends StatefulWidget {
@override
_MyAppState createState() => new _MyAppState();
}
class _MyAppState extends State<MyApp> {
InAppWebViewController webView;
@override
void initState() {
super.initState();
}
@override
void dispose() {
super.dispose();
}
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: const Text('InAppWebView Example'),
),
body: Container(
child: Column(children: <Widget>[
Expanded(
child: InAppWebView(
initialUrl: "https://github.com/flutter",
initialHeaders: {},
initialOptions: InAppWebViewGroupOptions(
crossPlatform: InAppWebViewOptions(
debuggingEnabled: true,
),
),
onWebViewCreated: (InAppWebViewController controller) {
webView = controller;
},
onLoadStart: (InAppWebViewController controller, String url) {
},
onLoadStop: (InAppWebViewController controller, String url) {
},
onLoadError: (controller, url, code, message) {
print(code);
print(message);
},
onLoadHttpError: (controller, url, statusCode, description) {
print(statusCode);
print(description);
},
))
])),
),
);
}
}
onLoadHttpError
并打印HTTP错误的
statusCode
和
description
。
关于flutter - setstate后flutter_webview_plugin监听器(onHttpError)无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60882291/
所以我打算使用flutter制作一个webapp,当我尝试使用flutter_webview_plugin时,它将显示另一个网站,如duckduckgo.com,wepapp不断加载并且从不显示我试图
我在ios模拟器上运行代码,但是ios一直在加载,webview状态是startLoad,但是无法finishLoad,页面总是加载,代码如下: @override Widget build(Buil
我正在尝试在 flutter 应用程序中播放存储在谷歌驱动器中的视频。我嵌入了视频并获得了网址。当我尝试播放视频时,它在 Android 中无法运行,而在 IOS 中运行良好。是插件在 android
我使用 flutter 插件“flutter_webview_plugin”在我的应用程序中打开一个 URL。问题是,在 Android 中,当您按下后退按钮时,它会“返回”并在 WebViewSca
我在 Flutter 项目中使用了 WebView_plugin。我可以加载我自己的网站。但是我的网站更新不存在。估计是缓存问题。 我尝试传递一些选项,例如:clearCache , appCache
我一直在flutter中开发web view,不知道哪个好webview_flutter 与 flutter_webview_plugin。 最佳答案 在 webview_flutter 中,“Flu
我一直在使用 flutter_webview_plugin 构建一个 flutter android 应用程序。我的问题是当我使用 android 手机的后退按钮时,web View 而不是关闭显示加
我正在使用 WebviewScaffold。它运行良好,但现在我想在向上滚动时隐藏 BottomNavigationBar 和 AppBar。向下滚动它应该显示 AppBar 和 BottomNavi
当我通过 flutter_webview_plugin 播放 mp3 文件或通过 url_launch 在 webview 中启动它时,我没有找到寻找特定时间的选项。它通常适用于视频,但当它是音频时,
我尝试在 Android 版本 4.4.2 中使用 Webview 访问页面 www.sandbox.paypal.com,但我收到错误消息:Falling back to SSLv3 because
我是一名优秀的程序员,十分优秀!