This project is based on the no longer maintained https://github.com/robwalkerco/react-native-wifi.
$ npm install react-native-wifi-reborn --save
You need use enable Access WIFI Information, with correct profile
You need put "Privacy - Location When In Use Usage Description" or "Privacy - Location Always and When In Use Usage Description" in Settings -> info
Location permission (a runtime permission starting Android 6) is required for some methods. FIXME: add resources / example.
This library is correctly autolinked on React Native 60+ 🎉.
While the library is included (via settings.gradle) and added (via build.gradle), you still need to manually added to your MainApplication.
import com.reactlibrary.RNWifiPackage;
public class MainApplication extends NavigationApplication {
@Override
public List<ReactPackage> createAdditionalReactPackages() {
return Arrays.asList(
...,
new RNWifiPackage());
}
}
$ react-native link react-native-wifi-reborn
- In XCode, in the project navigator, right click
Libraries
➜Add Files to [your project's name]
- Go to
node_modules
➜react-native-wifi
and addRNWifi.xcodeproj
- In XCode, in the project navigator, select your project. Add
libRNWifi.a
to your project'sBuild Phases
➜Link Binary With Libraries
- Run your project (
Cmd+R
)<
- Open up
android/app/src/main/java/[...]/MainActivity.java
- Add
import com.reactlibrary.RNWifiPackage;
to the imports at the top of the file - Add
new RNWifiPackage()
to the list returned by thegetPackages()
method
- Append the following lines to
android/settings.gradle
:include ':react-native-wifi-reborn' project(':react-native-wifi-reborn').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-wifi/android')
- Insert the following lines inside the dependencies block in
android/app/build.gradle
:implementation project(':react-native-wifi-reborn')
import WifiManager from 'react-native-wifi-reborn';
WifiManager.connectToProtectedSSID(ssid, password, isWep)
.then(() => {
console.log('Connected successfully!')
}, () => {
console.log('Connection failed!')
})
WifiManager.getCurrentWifiSSID()
.then((ssid) => {
console.log("Your current connected wifi SSID is " + ssid)
}, () => {
console.log('Cannot get current SSID!')
})
This work is in progress.
Returns a promise that resolves when connected or rejects with the error when it couldn't connect to the wifi network.
Type: string
The SSID of the wifi network to connect with.
Type: string
The password of the wifi network to connect with.
Type: boolean
Used on iOS. FIXME: why?
notInRange
: The WIFI network is not currently in range.addOrUpdateFailed
: Could not add or update the network configuration.disconnectFailed
: Disconnecting from the network failed. This is done as part of the connect flow.connectNetworkFailed
: Could not connect to network.
Method to force wifi usage if the user needs to send requests via wifi if it does not have internet connection.
If you want to use it, you need to add the android.permission.WRITE_SETTINGS
permission to your AndroidManifest.xml.
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
</manifest>