If you can contribute or you want to, feel free to do it at Buy me a coffee! ☕, I will be really thankfull for anything even if it is a coffee or just a kind comment towards my work, because that helps me a lot.
plugin used for connect the device trhought Wifi also with prefix
npm install @falconeta/capacitor-wifi-connect
npx cap sync
import { CapacitorWifiConnect } from "@falconeta/capacitor-wifi-connect";
async secureConnect() {
let { value } = await CapacitorWifiConnect.checkPermission();
if (value === 'prompt') {
const data = await CapacitorWifiConnect.requestPermission();
value = data.value;
}
if (value === 'granted') {
CapacitorWifiConnect.secureConnect({
ssid: 'SSID',
password: 'PWD',
}).then((data) => alert(data.value));
} else {
throw new Error('permission denied');
}
}
For functionality, you need to note the following:
Connect/Disconnect only works for iOS11+
prefixConnect/securePrefixConnect only works for iOS13+
Can't run in the simulator so you need to attach an actual device when building with xCode
Will ensure 'HotspotConfiguration' and 'Wifi Information' capabilities are added to your xCode project
Will ensure that these permission are described in info.plist
<key>NSLocationAlwaysAndWhenInUseUsageDescription</key>
<string>...</string>
<key>NSLocationAlwaysUsageDescription</key>
<string>...</string>
<key>NSLocationWhenInUseUsageDescription</key>
<string>...</string>
Promise<{ value: PermissionState; }>
**Since:** 1.0.0
--------------------
### requestPermission()
```typescript
requestPermission() => Promise<{ value: PermissionState; }>
```
method that request (if the status of authorization is prompt) autorization to use the location capability.
**Returns:** Promise<{ value: PermissionState; }>
**Since:** 1.0.0
--------------------
### disconnect()
```typescript
disconnect() => Promise<{ value: boolean; }>
```
method that disconnects from the wifi network if the network was connected to using one of the connect methods.
**Returns:** Promise<{ value: boolean; }>
**Since:** 1.0.0
--------------------
### getSSIDs()
```typescript
getSSIDs() => Promise<{ value: string[]; status: ConnectState; }>
```
ONLY ANDROID
returns the current SSID connected by Application
WARNING: app is restricted to 4 scans every 2 minutes
**Returns:** Promise<{ value: string[]; status: ConnectState; }>
**Since:** 5.1.0
--------------------
### getAppSSID()
```typescript
getAppSSID() => Promise<{ value: string; status: ConnectState; }>
```
returns the current SSID connected by Application
**Returns:** Promise<{ value: string; status: ConnectState; }>
**Since:** 5.1.0
--------------------
### getDeviceSSID()
```typescript
getDeviceSSID() => Promise<{ value: string; status: ConnectState; }>
```
iOS >= 14, Android >=9:
returns the current SSID connected by device
**Returns:** Promise<{ value: string; status: ConnectState; }>
**Since:** 5.1.0
--------------------
### connect(...)
```typescript
connect(options: { ssid: string; saveNetwork?: boolean; }) => Promise<{ value: ConnectState; }>
```
method attempts to connect to wifi matching explicitly the ssid parameter
WARNING: saveNetwork is enabled by default on iOS and cannot be disabled due Apple's bug. (https://forums.developer.apple.com/forums/thread/700612)
| Param | Type |
| ------------- | ----------------------------------------------------- |
| **`options`** | { ssid: string; saveNetwork?: boolean; }
|
**Returns:** Promise<{ value: ConnectState; }>
**Since:** 1.0.0
--------------------
### prefixConnect(...)
```typescript
prefixConnect(options: { ssid: string; saveNetwork?: boolean; }) => Promise<{ value: ConnectState; }>
```
method attempts to connect to the nearest wifi network with the ssid prefix matching the ssidPrefix parameter.
WARNING: saveNetwork is enabled by default on iOS and cannot be disabled due Apple's bug. (https://forums.developer.apple.com/forums/thread/700612)
| Param | Type |
| ------------- | ----------------------------------------------------- |
| **`options`** | { ssid: string; saveNetwork?: boolean; }
|
**Returns:** Promise<{ value: ConnectState; }>
**Since:** 1.0.0
--------------------
### secureConnect(...)
```typescript
secureConnect(options: { ssid: string; password: string; saveNetwork?: boolean; isWep?: boolean; }) => Promise<{ value: ConnectState; }>
```
method attempts to connect to wifi matching explicitly the ssid parameter.
This will fail if the password doesn't match or the isWep parameter isn't set correctly.
Android does not support WEP Networks.
WARNING: saveNetwork is enabled by default on iOS and cannot be disabled due Apple's bug. (https://forums.developer.apple.com/forums/thread/700612)
| Param | Type |
| ------------- | ---------------------------------------------------------------------------------------- |
| **`options`** | { ssid: string; password: string; saveNetwork?: boolean; isWep?: boolean; }
|
**Returns:** Promise<{ value: ConnectState; }>
**Since:** 1.0.0
--------------------
### securePrefixConnect(...)
```typescript
securePrefixConnect(options: { ssid: string; password: string; saveNetwork?: boolean; isWep?: boolean; }) => Promise<{ value: ConnectState; }>
```
method attempts to connect to the nearest
wifi network with the ssid prefix matching the ssidPrefix parameter.
This will fail if the password doesn't match or the isWep parameter
isn't set correctly. Android does not support WEP Networks.
WARNING: saveNetwork is enabled by default on iOS and cannot be disabled due Apple's bug. (https://forums.developer.apple.com/forums/thread/700612)
| Param | Type |
| ------------- | ---------------------------------------------------------------------------------------- |
| **`options`** | { ssid: string; password: string; saveNetwork?: boolean; isWep?: boolean; }
|
**Returns:** Promise<{ value: ConnectState; }>
**Since:** 1.0.0
--------------------
### Type Aliases
#### PermissionState
'prompt' | 'prompt-with-rationale' | 'granted' | 'denied'
### Enums
#### ConnectState
| Members | Value |
| ---------------------------------- | --------------- |
| **`Ok`** | 0
|
| **`Denied`** | -1
|
| **`Ko`** | -2
|
| **`UnknowSsid`** | -3
|
| **`WifiDisabled`** | -4
|
| **`AppLocalizationPermission`** | -5
|
| **`SystemLocalizationPermission`** | -6
|