internet_connection_checker_plus

Creator: coderz1093

Last updated:

Add to Cart

Description:

internet connection checker plus

Internet Connection Checker Plus #
A Flutter package to check your internet connection with subsecond response
times, even on mobile networks!





This library provides functionality to monitor and verify internet connectivity
by checking reachability to various Uris. It relies on the connectivity_plus
package for listening to connectivity changes and the http package for making
network requests.
Features #

Check internet connectivity status
Listen for internet connectivity changes

Supported Platforms #



Platform
Check Connectivity
Listen for Changes




Android




iOS




macOS




Linux




Windows




Web





Permissions #
Android #
Add the following permissions to your AndroidManifest.xml file:
<uses-permission android:name="android.permission.INTERNET" />
copied to clipboard
macOS #
Add the following permissions to your macOS .entitlements files:
<key>com.apple.security.network.client</key>
<true/>
copied to clipboard
For more information, see the Flutter Networking Documentation.
Usage #
1. Add dependency #
Add the internet_connection_checker_plus package to your pubspec.yaml file:
dependencies:
internet_connection_checker_plus: ^2.5.1
copied to clipboard
2. Import the package #
Import the internet_connection_checker_plus package into your Dart file:
import 'package:internet_connection_checker_plus/internet_connection_checker_plus.dart';
copied to clipboard
3. Checking for internet connectivity #
The simplest way to check for internet connectivity is to use the
InternetConnection class:
bool result = await InternetConnection().hasInternetAccess;
copied to clipboard
4. Listening for internet connectivity changes #
The InternetConnection class also provides a stream of InternetStatus that
can be used to listen for changes in internet connectivity:
final listener = InternetConnection().onStatusChange.listen((InternetStatus status) {
switch (status) {
case InternetStatus.connected:
// The internet is now connected
break;
case InternetStatus.disconnected:
// The internet is now disconnected
break;
}
});
copied to clipboard
Don't forget to cancel the subscription when it is no longer needed.
This will prevent memory leaks and free up resources:
listener.cancel();
copied to clipboard
5. Add custom Uris to check #
The InternetConnection class can be configured to check custom Uris for
internet connectivity:
final connection = InternetConnection.createInstance(
customCheckOptions: [
InternetCheckOption(uri: Uri.parse('https://example.com')),
],
);
copied to clipboard

Note
Make sure the custom Uris have no caching enabled. Otherwise, the results
may be inaccurate.


Note
On web platform, make sure the custom Uris are not CORS blocked.
Otherwise, the results may be inaccurate.

6. Add custom success criteria #
The InternetConnection class can be configured to check custom Uris for
internet connectivity using custom success criteria:
final connection = InternetConnection.createInstance(
customCheckOptions: [
InternetCheckOption(
uri: Uri.parse('https://example.com'),
responseStatusFn: (response) {
return response.statusCode >= 69 && response.statusCode < 169;
},
),
InternetCheckOption(
uri: Uri.parse('https://example2.com'),
responseStatusFn: (response) {
return response.statusCode >= 420 && response.statusCode < 1412;
},
),
],
);
copied to clipboard
Default Uris
The InternetConnection class uses the following Uris by default:



URI
Description




https://one.one.one.one
Response time is less than 100ms, CORS enabled, no-cache


https://icanhazip.com
Response time is less than 100ms, CORS enabled, no-cache


https://jsonplaceholder.typicode.com/todos/1
Response time is less than 100ms, CORS enabled, no-cache


https://reqres.in/api/users/1
Response time is less than 100ms, CORS enabled, no-cache



Some Tested URIs



URI
Description




https://ipapi.co/ip
CORS enabled, no-cache


https://api.adviceslip.com/advice
CORS enabled, no-cache


https://api.bitbucket.org/2.0/repositories
CORS enabled, no-cache


https://api.thecatapi.com/v1/images/search
CORS enabled, no-cache


https://api.coindesk.com/v1/bpi/currentprice.json
CORS enabled, no-cache


https://lenta.ru
Russia supported, CORS enabled, no-cache


https://www.gazeta.ru
Russia supported, CORS enabled, no-cache



If you liked the package, then please give it a Like 👍🏼 and Star ⭐ #
Credits #
This package is a cloned and modified version of the
internet_connection_checker package which is a cloned and modified version of
the data_connection_checker package which is no longer maintained.
The aim of this package is to support the web platform which is currently not
supported by the internet_connection_checker package.

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.