I tried using the top rated answer: Check whether there is an Internet connection available on Flutter app to check if I had an internet connection, but I need to create a page that displays a text saying no signal if the catch returns an error, but I don't know how to do this in flutter. Then if there is no error, the normal main menu page is returned. Thanks
Asked
Active
Viewed 227 times
1 Answers
3
Here is a quick solution, but probably not the best one:
With the link you provided we can create a function like this:
Future<bool> _checkIfConnected() async {
try {
final result = await InternetAddress.lookup('google.com');
if (result.isNotEmpty && result[0].rawAddress.isNotEmpty) {
print('connected');
}
return true;
} on SocketException catch (_) {
print('not connected');
return false;
}
}
This will check if you are connected and the return a future with a bool value that tells if your connection was successful or not.
Then on your widget, you could use a future builder like this:
FutureBuilder(
future: _checkIfConnected(),
builder: (context, isConnected) =>
isConnected.connectionState == ConnectionState.done
? isConnected.data
? // your main menu here //
: Center(
child: Text('no signal'),
)
: CircularProgressIndicator(),
)
Since the connection check returns a future, you must use a future builder here. It simply returns a widget depending on the state of your future. More about future builder here

EdYuTo
- 6,374
- 3
- 11
- 22