Skip to content

Latest commit

 

History

History
92 lines (74 loc) · 2.54 KB

File metadata and controls

92 lines (74 loc) · 2.54 KB

React Native Network Connection Class

Android Bridge to Facebook's Network Connection Class

Network Connection Class is an Android library that allows you to figure out the quality of the current user's internet connection. The connection gets classified into several "Connection Classes" that make it easy to develop against.

NPM

Installation

1) npm i --save react-native-network-connection-class

or manually:
Add repository to package.json
"react-native-device-year-class": "git+ssh://[email protected]:manuelkch/react-native-network-connection-class.git"

2) Run
npm install

or manually:
git clone the directory to [node_modules/react-native-network-connection-class]

Add it to your react-native project

React Native Link

react-native link react-native-network-connection-class

or manually

  • In android/setting.gradle

     ...
    include ':react-native-network-connection-class'
    project(':react-native-network-connection-class').projectDir = new File(settingsDir, '../node_modules/react-native-network-connection-class/android')
    
  • In android/app/build.gradle

     ...
     dependencies {
         ...
       compile project(':react-native-network-connection-class')
     }
    
  • register module in MainApplication.java

      import com.ymc.NetworkConnectionClass.Package;  
      ...
    
      protected List<ReactPackage> getPackages() {
          return Arrays.<ReactPackage>asList(
                  new MainReactPackage(),
                  new Package() // <-- Add this line.
          );
      }

Example

...
import NetworkConnectionClass from 'react-native-network-connection-class'  
	...
	//listen to connection class changes
	DeviceEventEmitter.addListener('connectionClassChange', function(e: Event) {
		// new state
    console.warn(e.state)
  })
	...
	//get current class string (POOR, MODERATE,GOOD or EXCELENT)
	NetworkConnectionClass.getCurrentQuality().then((status) => {
		//current state
		console.warn(status)
	})
	...
	//start/stop sampling bandwith data on newtork activities
	NetworkConnectionClass.startSampling()
	.fetch('https://jsonplaceholder.typicode.com/photos')
		.then(function(response) {
			NetworkConnectionClass.stopSampling()
			...
	})
	...
	// get boolean if sampling thread is running
	NetworkConnectionClass.getSamplingState().then((isSampling) => {
		console.warn(isSampling)
	})