Lulus Widgets di Connectivity check in flutter

Aug 31 2020

Saya ingin menerapkan pemeriksaan konektivitas internet ke aplikasi saya dan saya menggunakan plugin konektivitas resmi dan itu berfungsi dengan baik untuk menampilkan Nilai String tetapi alih-alih menampilkan nilai string di layar, saya ingin menampilkan widget yang berbeda untuk terhubung dan terputus.

Di Sini Yang Saya Gunakan

//
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();
  }

Dan saya mendapatkan nilai 'tidak diketahui'

Jawaban

1 Reign Aug 31 2020 at 05:18

coba ini

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);
  }
}
1 AashutoshPoudel Aug 31 2020 at 05:21

Coba ini: Gunakan paket ini untuk memeriksa Internet: data_connection_checker:

Dan, Di dalam kelas stateful Anda, buat pendengar aliran yaitu dan nilai boolean.

StreamSubscription<DataConnectionStatus> listener; bool isConnected = true;

dan Inside initState:

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

    listener = DataConnectionChecker().onStatusChange.listen((status) {
      switch (status) {
        case DataConnectionStatus.connected:
          print('Data connection is available. $status'); setState(() { isConnected = true; }); break; case DataConnectionStatus.disconnected: print('You are disconnected from the internet. $status');
          setState(() {
            isConnected = false;
          });
       
          break;
      }
    });
  }

Selesai, Ini akan terus mendengarkan perubahan status internet Anda, Dengan demikian Anda dapat meminta pengguna sesuka Anda. Cheers, Jangan ragu untuk bertanya jika kebingungan dan apakah itu membantu upvote: D