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>
checkPermission()
requestPermission()
disconnect()
getSSIDs()
getAppSSID()
getDeviceSSID()
connect(...)
prefixConnect(...)
secureConnect(...)
securePrefixConnect(...)
- Type Aliases
- Enums
checkPermission() => Promise<{ value: PermissionState; }>
method that check if the app has autorization or not to use the location capability.
Returns: Promise<{ value: PermissionState; }>
Since: 1.0.0
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() => 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() => 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() => Promise<{ value: string; status: ConnectState; }>
returns the current SSID connected by Application
Returns: Promise<{ value: string; status: ConnectState; }>
Since: 5.1.0
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(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(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(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(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
'prompt' | 'prompt-with-rationale' | 'granted' | 'denied'
Members | Value |
---|---|
Ok |
0 |
Denied |
-1 |
Ko |
-2 |
UnknowSsid |
-3 |
WifiDisabled |
-4 |
AppLocalizationPermission |
-5 |
SystemLocalizationPermission |
-6 |