Lulus Widgets di Connectivity check in flutter
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
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);
}
}
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