Skip to content

falconeta/capacitor-wifi-connect

Repository files navigation

@falconeta/capacitor-wifi-connect

plugin used for connect the device trhought Wifi also with prefix

Install

npm install @falconeta/capacitor-wifi-connect
npx cap sync

Example usage

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');
    }
  }

iOS Functions

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>

API

checkPermission()

checkPermission() => Promise<{ value: PermissionState; }>

Returns: Promise<{ value: PermissionState; }>


requestPermission()

requestPermission() => Promise<{ value: PermissionState; }>

Returns: Promise<{ value: PermissionState; }>


disconnect()

disconnect() => Promise<{ value: boolean; }>

Returns: Promise<{ value: boolean; }>


getSSIDs()

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()

getAppSSID() => Promise<{ value: string; status: ConnectState; }>

returns the current SSID connected by Application

Returns: Promise<{ value: string; status: ConnectState; }>

Since: 5.1.0


getDeviceSSID()

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(...)

connect(options: { ssid: string; saveNetwork?: boolean; }) => Promise<{ value: ConnectState; }>
Param Type
options { ssid: string; saveNetwork?: boolean; }

Returns: Promise<{ value: ConnectState; }>


prefixConnect(...)

prefixConnect(options: { ssid: string; saveNetwork?: boolean; }) => Promise<{ value: ConnectState; }>
Param Type
options { ssid: string; saveNetwork?: boolean; }

Returns: Promise<{ value: ConnectState; }>


secureConnect(...)

secureConnect(options: { ssid: string; password: string; saveNetwork?: boolean; isWep?: boolean; }) => Promise<{ value: ConnectState; }>
Param Type
options { ssid: string; password: string; saveNetwork?: boolean; isWep?: boolean; }

Returns: Promise<{ value: ConnectState; }>


securePrefixConnect(...)

securePrefixConnect(options: { ssid: string; password: string; saveNetwork?: boolean; isWep?: boolean; }) => Promise<{ value: ConnectState; }>
Param Type
options { ssid: string; password: string; saveNetwork?: boolean; isWep?: boolean; }

Returns: Promise<{ value: ConnectState; }>


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