--- id: netinfo title: NetInfo category: APIs permalink: docs/netinfo.html ---

NetInfo exposes info about online/offline status

NetInfo.fetch().then((reach) => { console.log('Initial: ' + reach); }); function handleFirstConnectivityChange(reach) { console.log('First change: ' + reach); NetInfo.removeEventListener( 'change', handleFirstConnectivityChange ); } NetInfo.addEventListener( 'change', handleFirstConnectivityChange );

IOS #

Asynchronously determine if the device is online and on a cellular network.

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" /> Asynchronously determine if the device is connected and details about that connection.

Android Connectivity Types.

The rest ConnectivityStates are hidden by the Android API, but can be used if necessary.

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

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( 'change', handleFirstConnectivityChange ); } NetInfo.isConnected.addEventListener( 'change', handleFirstConnectivityChange );

Methods #

static addEventListener(eventName, handler) #

Invokes the listener whenever network status changes. The listener receives one of the connectivity types listed above.

static removeEventListener(eventName, handler) #

Removes the listener for network status changes.

static fetch() #

Returns a promise that resolves with one of the connectivity types listed above.

static isConnectionExpensive() #

Properties #

isConnected: ObjectExpression #

An object with the same methods as above but the listener receives a boolean which represents the internet connectivity. Use this if you are only interested with whether the device has internet connectivity.