react-native-esptouch
One should know that
This is a Unofficial project. The official demo is below:
Getting started
$ npm install react-native-esptouch --save
Mostly automatic installation
$ react-native link react-native-esptouch
Manual installation
iOS
- In XCode, in the project navigator, right click 
Libraries➜Add Files to [your project's name] - Go to 
node_modules➜react-native-esptouchand addRNEsptouch.xcodeproj - In XCode, in the project navigator, select your project. Add 
libRNEsptouch.ato your project'sBuild Phases➜Link Binary With Libraries - Run your project (
Cmd+R)< 
Android
- Open up 
android/app/src/main/java/[...]/MainActivity.java 
- Add 
import com.rickl.rn.esptouch.RNEsptouchPackage;to the imports at the top of the file - Add 
new RNEsptouchPackage()to the list returned by thegetPackages()method 
- Append the following lines to 
android/settings.gradle:include ':react-native-esptouch' project(':react-native-esptouch').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-esptouch/android') - Insert the following lines inside the dependencies block in 
android/app/build.gradle:compile project(':react-native-esptouch') 
Usage
import RNEsptouch from 'react-native-esptouch';
class Demo extends React.Component {
	constructor(props) {
		super(props);
		this.onPress = this.onPress.bind(this);
	}
	componentDidMount() {
		RNEsptouch.initESPTouch();
	}
	componentWillUnmount() {
		RNEsptouch.finish();
	}
	onPress() {
		let connected_wifi_password = "123456";
		let broadcast_type = 1;	// 1: broadcast;	0: multicast
		RNEsptouch.startSmartConfig(connected_wifi_password, broadcast_type).then((res) => {
			if (res.code == 200) {
				// ESPTouch success
			} else {
				// ESPTouch failed
				console.info(res.msg)
			}
		})
	}
	render() {
		return (
			<View>
				<Button title="test" onPress={this.onPress} />
			</View>
		)
	}
} 
API
getNetInfo
RNEsptouch.getNetInfo().then((info) => {
    console.log(info)
    // { ssid, bssid }
});