react-native-vpn-ipsec
Getting started
Plugin can be installed using npm
With yarn:
$ yarn add react-native-vpn-ipsec --save
Or with npm:
$ npm install react-native-vpn-ipsec --save
Mostly automatic installation
on react native >60 no need to do anything but for manualing installation run the code below
$ react-native link react-native-vpn-ipsec
Example
To run example:
- make sure the module folder has no node_modules
- install the dependencies on the example folder using
yarn
or npm i
- run the project:
npx react-native run-android
Usage
import { saveConfig, prepare, connect } from "react-native-vpn-ipsec";
...
useEffect(() => {
prepare();
});
...
connect(name, address, username, password, secret, disconnectOnSleep)
saveConfig(name, address, username, password, secret)
see example folder.
Methods
Name | arguments | returns | Description |
---|
prepare | None | Promise | Android: This will ask permission and do necessary setups IOS: This will listen for status change on vpn |
connect | address: string (address of VPN) username: string (username of VPN's credentials) password: string (username of VPN's credentials) vpnType: string | undefined (Android only, not implemented yet) mtu: number | undefiend (Android only, VPN's maximum transmission unit)
| Promise | Connect to vpn with provided credentials |
getCurrentState | None | Promise | Get current VPN state |
getCharonErrorState (Android only) | None | Promise | Get current VPN Error state (Android only) |
disconnect | None | Promise | Disconnect the VPN |
onStateChangedListener | callback: (state: { state: VpnState; charonState: CharonErrorState }) => void | EmitterSubscription | Will call the callback on state change |
removeOnStateChangeListener | stateChangedEvent: EmitterSubscription | void | Remove the state change listener |
Enums
Name | Values | Description |
---|
VpnState | disconnected = 0 (VPN is disconnected) connecting = 1 (VPN is connecting) connected = 2 (VPN is connected) disconnecting = 3 (VPN is disconnecting) genericError = 4 (VPN encountered an error charon state on android to find out the error) | VPN current state |
CharonErrorState | NO_ERROR = 0 (VPN has no error) AUTH_FAILED = 1 (Wrong credentials) PEER_AUTH_FAILED = 2 LOOKUP_FAILED = 3 (Wrong VPN URL) UNREACHABLE = 4 (VPN URL is unreachable) GENERIC_ERROR = 5 PASSWORD_MISSING = 6 (No password has been provided) CERTIFICATE_UNAVAILABLE = 7 (Certification has not been provided) UNDEFINED = 8 (Unknown error) | VPN Error |