【发布时间】:2021-03-01 10:55:18
【问题描述】:
我正在创建一个新的 Flutter 项目。
我想使用 Provider 检查整个应用程序的互联网连接状态。
我在 pubspec.yaml 文件中包含了“connectivity”和“provider”这两个包。
然后我将 main.dart 更改如下,以包含 Connectivity 插件的流提供程序:
class MyApp extends StatelessWidget {
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
return MultiProvider(
providers: [
StreamProvider(
create: (context) => Connectivity().onConnectivityChanged),
],
child: MaterialApp(
debugShowCheckedModeBanner: false,
title: 'My New App',
theme: ThemeData(
backgroundColor: Colors.white,
),
home: MyHomePage(title: 'My New App Login'),
),
);
}
}
在我想检查互联网连接状态的每个新课程中我应该怎么做?
我知道我必须使提供者生效:
var connectionStatus;
connectionStatus = Provider.of<ConnectivityResult>(context);
但是,我应该怎么做才能收听每个班级的连接状态?
【问题讨论】:
-
Connectivity 只会检查您是否连接到 wifi 网络,如果您有互联网连接则不会。更好的选择是使用
http包并 ping 一个公共站点。 -
@rkdupr0n,谢谢,我知道,但我想先如何使用提供程序检查连接,先学习如何实现,然后如果有互联网连接,我会实施
-
刚刚找到这个包来检查互联网连接。 pub.dev/packages/data_connection_checker 干杯!
标签: flutter