NetInfo
Deprecated. Use react-native-community/react-native-netinfo instead.
NetInfo exposes info about online/offline status
NetInfo.getConnectionInfo().then((connectionInfo) => {
console.log(
'Initial, type: ' +
connectionInfo.type +
', effectiveType: ' +
connectionInfo.effectiveType
);
});
function handleFirstConnectivityChange(connectionInfo) {
console.log(
'First change, type: ' +
connectionInfo.type +
', effectiveType: ' +
connectionInfo.effectiveType
);
NetInfo.removeEventListener(
'connectionChange',
handleFirstConnectivityChange
);
}
NetInfo.addEventListener(
'connectionChange',
handleFirstConnectivityChange
);
ConnectionType enum
ConnectionType describes the type of connection the device is using to communicate with the network.
Cross platform values for ConnectionType:
none- device is offlinewifi- device is online and connected via wifi, or is the iOS simulatorcellular- device is connected via Edge, 3G, WiMax, or LTEunknown- error case and the network status is unknown
Android-only values for ConnectionType:
bluetooth- device is connected via Bluetoothethernet- device is connected via Ethernetwimax- device is connected via WiMAX
EffectiveConnectionType enum
Cross platform values for EffectiveConnectionType:
2g3g4gunknown
Android
To request network info, you need to add the following line to your app's AndroidManifest.xml:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
Methods
Properties
Reference
Methods
addEventListener()
NetInfo.addEventListener(eventName, handler);
Adds an event handler.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
| eventName | enum(connectionChange, change) | Yes | The change event name. |
| handler | function | Yes | Listener function. |
Supported events:
connectionChange: Fires when the network status changes. The argument to the event handler is an object with keys:type: AConnectionType(listed above)effectiveType: AnEffectiveConnectionType(listed above)
change: This event is deprecated. Listen toconnectionChangeinstead. Fires when the network status changes. The argument to the event handler is one of the deprecated connectivity types listed above.
removeEventListener()
NetInfo.removeEventListener(eventName, handler);
Removes the listener for network status changes.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
| eventName | enum(connectionChange, change) | Yes | The change event name. |
| handler | function | Yes | Listener function. |
getConnectionInfo()
NetInfo.getConnectionInfo();
Returns a promise that resolves to an object with type and effectiveType keys whose values are a ConnectionType and an EffectiveConnectionType), respectively.
isConnectionExpensive()
NetInfo.isConnectionExpensive();
Available on Android. Detect if the current active connection is metered or not. A network is classified as metered when the user is sensitive to heavy data usage on that connection due to monetary costs, data limitations or battery/performance issues.
NetInfo.isConnectionExpensive()
.then(isConnectionExpensive => {
console.log('Connection is ' + (isConnectionExpensive ? 'Expensive' : 'Not Expensive'));
})
.catch(error => {
console.error(error);
});
Properties
isConnected
Available on all platforms. Asynchronously fetch a boolean to determine internet connectivity.
NetInfo.isConnected.fetch().then(isConnected => {
console.log('First, is ' + (isConnected ? 'online' : 'offline'));
});
function handleFirstConnectivityChange(isConnected) {
console.log('Then, is ' + (isConnected ? 'online' : 'offline'));
NetInfo.isConnected.removeEventListener(
'connectionChange',
handleFirstConnectivityChange
);
}
NetInfo.isConnected.addEventListener(
'connectionChange',
handleFirstConnectivityChange
);