首页 > 解决方案 > 在 Flutter 中通过 Connectivity 中的小部件检查

问题描述

我想在我的应用程序中实现互联网连接检查,我使用了官方连接插件,它非常适合显示字符串值,但我不想在屏幕上显示字符串值,而是想显示不同的小部件以用于连接和断开连接。

我在用什么

//
Widget result;
//


body: Container(
        alignment: Alignment.center,
        child: result != null ? 
        result : Text("unknown", style :
        TextStyle(fontSize: 30,fontWeight: FontWeight.bold),
        ),
void checkStatus(){
    Connectivity().onConnectivityChanged.listen((ConnectivityResult result) { 
      if(
        result == ConnectivityResult.mobile ||
        result == ConnectivityResult.wifi){
          Text("Connected", style:TextStyle(color:Colors.red));
        } else {
          Text("No InterNet", style:TextStyle(color:Colors.red));
        }
    });
  }
@override
  void initState() {
    super.initState();
    checkStatus();
  }

我正在获得“未知”的价值

标签: flutter

解决方案


试试这个

class Sample extends StatefulWidget {
  @override
  _SampleState createState() => _SampleState();
}

class _SampleState extends State<Sample> {
  Widget result;

  @override
  void initState() {
    super.initState();
    checkStatus();
  }

  void checkStatus() async {
    var connectivityResult = await (Connectivity().checkConnectivity());
    if (connectivityResult == ConnectivityResult.mobile) {
      result = Text("Connected to Mobile Network");
      setState(() {});
    } else if (connectivityResult == ConnectivityResult.wifi) {
      result = Text("Connected to WiFi");
      print("Connected to WiFi");
      setState(() {});
    } else {
      result = Text("Unable to connect. Please Check Internet Connection");
      setState(() {});
      print("Unable to connect. Please Check Internet Connection");
    }
  }

  @override
  Widget build(BuildContext context) {
    return Center(child: result);
  }
}

推荐阅读