---
description: Capacitor plugin to access network information such as connection status and type, and to listen for network changes on Android, iOS, and the web.
title: Capacitor Network Plugin for Android, iOS & Web - Capawesome
image: https://capawesome.io/docs/assets/images/social/sdks/capacitor/network.png
---

<!doctype html> 

[Skip to content ](#capacitor-network-plugin) 

[🔐 Introducing the **Capacitor Vault** plugin — store secrets behind biometrics or a device passcode. ](/blog/announcing-the-capacitor-vault-plugin/) 

* [ SDKs ](/docs/sdks/)
* [ Formbricks ](/docs/sdks/capacitor/formbricks/)
* [ Geocoder ](/docs/sdks/capacitor/geocoder/)
* [ Google Sign-In ](/docs/sdks/capacitor/google-sign-in/)
* [ Grafana Faro ](/docs/sdks/capacitor/grafana-faro/)
* [ Gyroscope ](/docs/sdks/capacitor/gyroscope/)
* [ Haptics ](/docs/sdks/capacitor/haptics/)
* [ In-App Browser ](/docs/sdks/capacitor/in-app-browser/)
* [ Install Referrer ](/docs/sdks/capacitor/install-referrer/)
* [ Keep Awake ](/docs/sdks/capacitor/keep-awake/)
* [ libSQL ](/docs/sdks/capacitor/libsql/)
* [ Live Update ](/docs/sdks/capacitor/live-update/)
* [ Localization ](/docs/sdks/capacitor/localization/)
* [ Mail Composer ](/docs/sdks/capacitor/mail-composer/)
* [ Managed Configurations ](/docs/sdks/capacitor/managed-configurations/)
* [ Maps Launcher ](/docs/sdks/capacitor/maps-launcher/)
* [ Media Session ](/docs/sdks/capacitor/media-session/)
* [ ML Kit ](/docs/sdks/capacitor/mlkit/)
* [ Navigation Bar ](/docs/sdks/capacitor/navigation-bar/)
* Network [ Network ](/docs/sdks/capacitor/network/)
* [ Enums ](#enums)
* [ Network Information ](#network-information)
* [ Changelog ](#changelog)
* [ License ](#license)
* [ NFC ](/docs/sdks/capacitor/nfc/)
* [ Node.js ](/docs/sdks/capacitor/nodejs/)
* [ OAuth ](/docs/sdks/capacitor/oauth/)
* [ Passkeys ](/docs/sdks/capacitor/passkeys/)
* [ Password Autofill ](/docs/sdks/capacitor/password-autofill/)
* [ PDF Generator ](/docs/sdks/capacitor/pdf-generator/)
* [ PDF Viewer ](/docs/sdks/capacitor/pdf-viewer/)
* [ Pedometer ](/docs/sdks/capacitor/pedometer/)
* [ Phone Dialer ](/docs/sdks/capacitor/phone-dialer/)
* [ Photo Editor ](/docs/sdks/capacitor/photo-editor/)
* [ PixLive ](/docs/sdks/capacitor/pixlive/)
* [ PostHog ](/docs/sdks/capacitor/posthog/)
* [ Printer ](/docs/sdks/capacitor/printer/)
* [ Privacy Screen ](/docs/sdks/capacitor/privacy-screen/)
* [ Purchases ](/docs/sdks/capacitor/purchases/)
* [ RealtimeKit ](/docs/sdks/capacitor/realtimekit/)
* [ Root Detection ](/docs/sdks/capacitor/root-detection/)
* [ Screen Brightness ](/docs/sdks/capacitor/screen-brightness/)
* [ Screen Orientation ](/docs/sdks/capacitor/screen-orientation/)
* [ Screen Reader ](/docs/sdks/capacitor/screen-reader/)
* [ Screenshot ](/docs/sdks/capacitor/screenshot/)
* [ Secure Preferences ](/docs/sdks/capacitor/secure-preferences/)
* [ Settings Launcher ](/docs/sdks/capacitor/settings-launcher/)
* [ Shake ](/docs/sdks/capacitor/shake/)
* [ Silent Mode ](/docs/sdks/capacitor/silent-mode/)
* [ SIM ](/docs/sdks/capacitor/sim/)
* [ SMS Composer ](/docs/sdks/capacitor/sms-composer/)
* [ Speech Recognition ](/docs/sdks/capacitor/speech-recognition/)
* [ Speech Synthesis ](/docs/sdks/capacitor/speech-synthesis/)
* [ Share Target ](/docs/sdks/capacitor/share-target/)
* [ Square Mobile Payments ](/docs/sdks/capacitor/square-mobile-payments/)
* [ SQLite ](/docs/sdks/capacitor/sqlite/)
* [ Superwall ](/docs/sdks/capacitor/superwall/)
* [ Text Zoom ](/docs/sdks/capacitor/text-zoom/)
* [ Thermal State ](/docs/sdks/capacitor/thermal-state/)
* [ Toast ](/docs/sdks/capacitor/toast/)
* [ Torch ](/docs/sdks/capacitor/torch/)
* [ Vault ](/docs/sdks/capacitor/vault/)
* [ Volume ](/docs/sdks/capacitor/volume/)
* [ Wallet ](/docs/sdks/capacitor/wallet/)
* [ Wifi ](/docs/sdks/capacitor/wifi/)
* [ Zip ](/docs/sdks/capacitor/zip/)
* [ Cordova ](/docs/sdks/cordova/)
* [ Cloud ](/docs/cloud/)
* [ Integrations ](/docs/cloud/live-updates/integrations/)
* Concepts
* Reference
* [ Troubleshooting ](/docs/cloud/live-updates/troubleshooting/)
* [ FAQ ](/docs/cloud/live-updates/faq/)
* [ Native Builds ](/docs/cloud/native-builds/)
* [ Set Up Environments ](/docs/cloud/native-builds/environments/)
* [ Overwrite Native Configurations ](/docs/cloud/native-builds/native-configurations/)
* [ Auto-Increment Build Numbers ](/docs/cloud/native-builds/auto-incrementing-build-numbers/)
* [ Configure the Web Build Script ](/docs/cloud/native-builds/web-build-script/)
* [ Build from a Monorepo ](/docs/cloud/native-builds/monorepo/)
* [ Use pnpm, Yarn, or bun ](/docs/cloud/native-builds/package-managers/)
* [ Install Private npm Packages ](/docs/cloud/native-builds/npm-private-registry/)
* [ Override the Java Version ](/docs/cloud/native-builds/override-java-version/)
* [ Custom iOS Provisioning Profiles ](/docs/cloud/native-builds/custom-ios-provisioning-profiles/)
* [ Build without Git ](/docs/cloud/native-builds/build-without-git/)
* [ Access Git Behind a Firewall ](/docs/cloud/native-builds/firewall-access/)
* [ Integrations ](/docs/cloud/native-builds/integrations/)
* Reference
* [ Troubleshooting ](/docs/cloud/native-builds/troubleshooting/)
* [ FAQ ](/docs/cloud/native-builds/faq/)
* [ App Store Publishing ](/docs/cloud/app-store-publishing/)
* [ Submit a Build ](/docs/cloud/app-store-publishing/submit-a-build/)
* [ Submit Automatically After a Build ](/docs/cloud/app-store-publishing/submit-automatically/)
* [ Troubleshooting ](/docs/cloud/app-store-publishing/troubleshooting/)
* [ FAQ ](/docs/cloud/app-store-publishing/faq/)
* [ Automations ](/docs/cloud/automations/)
* [ Reference ](/docs/cloud/automations/reference/)
* [ Troubleshooting ](/docs/cloud/automations/troubleshooting/)
* [ FAQ ](/docs/cloud/automations/faq/)
* [ Assist ](/docs/cloud/assist/)
* [ CLI ](/docs/cloud/cli/)
* APIs and SDKs
* [ Webhooks ](/docs/cloud/webhooks/)
* [ Integrations ](/docs/cloud/integrations/)
* Account
* [ Organization ](/docs/cloud/organizations/)
* [ Two-Factor Enforcement ](/docs/cloud/organizations/two-factor-authentication/)
* [ Audit Logs ](/docs/cloud/organizations/audit-logs/)
* [ Billing ](/docs/cloud/organizations/billing/)
* [ License Keys ](/docs/cloud/license-keys/)
* [ AI ](/docs/ai/)
* [ Insiders ](/docs/insiders/)
* [ Billing & Plans ](/docs/insiders/billing-and-plans/)
* [ FAQ ](/docs/insiders/faq/)
* [ License ](https://capawesome.io/legal/eula/)
* [ Support ](/docs/support/)
* [ Contributing ](/docs/contributing/)
* Contributing code
* [ Code of Conduct ](/docs/contributing/code-of-conduct/)
* [ Questions ](https://docs.github.com/en/discussions/collaborating-with-your-community-using-discussions/participating-in-a-discussion#creating-a-discussion)
* [ Blog ](/blog/)
* Categories

* [ Enums ](#enums)
* [ Network Information ](#network-information)
* [ Changelog ](#changelog)
* [ License ](#license)

# Capacitor Network Plugin[¶](#capacitor-network-plugin "Permanent link")

Capacitor plugin to access network information.

[ ![Deliver Live Updates to your Capacitor app with Capawesome Cloud](../../../assets/external/cloud.capawesome.io/assets/banners/cloud-build-and-deploy-capacitor-apps.69628c3f.png) ](https://cloud.capawesome.io/) 

## Features[¶](#features "Permanent link")

We are proud to offer one of the most complete and feature-rich Capacitor plugins for network information. Here are some of the key features:

* 📶 **Network status**: Read whether the device is connected and how (Wi-Fi, cellular, ethernet, VPN).
* 🌍 **Internet reachability**: Detect whether the connection has verified access to the internet (Android).
* ✈️ **Airplane mode**: Read whether the airplane mode is enabled (Android).
* 👂 **Change events**: Listen for changes to the network status.
* 🌐 **Web support**: Read the network status on the web.
* 📦 **CocoaPods & SPM**: Supports CocoaPods and Swift Package Manager for iOS.
* 🤝 **Compatibility**: Works alongside the [Wifi](https://capawesome.io/docs/sdks/capacitor/wifi/) plugin.
* 🔁 **Up-to-date**: Always supports the latest Capacitor version.

Missing a feature? Just [open an issue](https://github.com/capawesome-team/capacitor-plugins/issues) and we'll take a look!

## Newsletter[¶](#newsletter "Permanent link")

Stay up to date with the latest news and updates about the Capawesome, Capacitor, and Ionic ecosystem by subscribing to our [Capawesome Newsletter](https://cloud.capawesome.io/newsletter/).

## Compatibility[¶](#compatibility "Permanent link")

| Plugin Version | Capacitor Version | Status         |
| -------------- | ----------------- | -------------- |
| 0.x.x          | \>=8.x.x          | Active support |

## Installation[¶](#installation "Permanent link")

You can use our **AI-Assisted Setup** to install the plugin. Add the [Capawesome Skills](https://github.com/capawesome-team/skills) to your AI tool using the following command:

`[](#%5F%5Fcodelineno-0-1)npx skills add capawesome-team/skills --skill capacitor-plugins
`

Then use the following prompt:

`` [](#%5F%5Fcodelineno-1-1) Use the `capacitor-plugins` skill from `capawesome-team/skills` to install the `@capawesome/capacitor-network` plugin in my project.
 ``

If you prefer **Manual Setup**, install the plugin by running the following commands and follow the platform-specific instructions below:

`[](#%5F%5Fcodelineno-2-1)npm install @capawesome/capacitor-network
[](#%5F%5Fcodelineno-2-2)npx cap sync
`

On **Android**, the plugin declares the [ACCESS\_NETWORK\_STATE](https://developer.android.com/reference/android/Manifest.permission#ACCESS%5FNETWORK%5FSTATE) permission in its manifest, so no additional configuration is required.

## Configuration[¶](#configuration "Permanent link")

No configuration required for this plugin.

## Usage[¶](#usage "Permanent link")

`[](#%5F%5Fcodelineno-3-1)import { Network } from '@capawesome/capacitor-network';
[](#%5F%5Fcodelineno-3-2)
[](#%5F%5Fcodelineno-3-3)const getStatus = async () => {
[](#%5F%5Fcodelineno-3-4)  const status = await Network.getStatus();
[](#%5F%5Fcodelineno-3-5)  return status;
[](#%5F%5Fcodelineno-3-6)};
[](#%5F%5Fcodelineno-3-7)
[](#%5F%5Fcodelineno-3-8)const isAirplaneModeEnabled = async () => {
[](#%5F%5Fcodelineno-3-9)  const { enabled } = await Network.isAirplaneModeEnabled();
[](#%5F%5Fcodelineno-3-10)  return enabled;
[](#%5F%5Fcodelineno-3-11)};
[](#%5F%5Fcodelineno-3-12)
[](#%5F%5Fcodelineno-3-13)const addNetworkStatusChangeListener = async () => {
[](#%5F%5Fcodelineno-3-14)  await Network.addListener('networkStatusChange', status => {
[](#%5F%5Fcodelineno-3-15)    console.log('Network status changed:', status);
[](#%5F%5Fcodelineno-3-16)  });
[](#%5F%5Fcodelineno-3-17)};
[](#%5F%5Fcodelineno-3-18)
[](#%5F%5Fcodelineno-3-19)const removeAllListeners = async () => {
[](#%5F%5Fcodelineno-3-20)  await Network.removeAllListeners();
[](#%5F%5Fcodelineno-3-21)};
`

## API[¶](#api "Permanent link")

* [getStatus()](#getstatus)
* [isAirplaneModeEnabled()](#isairplanemodeenabled)
* [addListener('networkStatusChange', ...)](#addlistenernetworkstatuschange-)
* [removeAllListeners()](#removealllisteners)
* [Interfaces](#interfaces)
* [Enums](#enums)

### getStatus()[¶](#getstatus "Permanent link")

`[](#%5F%5Fcodelineno-4-1)getStatus() => Promise<GetStatusResult>
`

Get the current network status of the device.

Only available on Android, iOS and Web.

**Returns:** `Promise<[GetStatusResult](#getstatusresult)>`

**Since:** 0.1.0

---

### isAirplaneModeEnabled()[¶](#isairplanemodeenabled "Permanent link")

`[](#%5F%5Fcodelineno-5-1)isAirplaneModeEnabled() => Promise<IsAirplaneModeEnabledResult>
`

Get whether the airplane mode is currently enabled.

Only available on Android.

**Returns:** `Promise<[IsAirplaneModeEnabledResult](#isairplanemodeenabledresult)>`

**Since:** 0.1.0

---

### addListener('networkStatusChange', ...)[¶](#addlistenernetworkstatuschange "Permanent link")

`[](#%5F%5Fcodelineno-6-1)addListener(eventName: 'networkStatusChange', listenerFunc: (event: GetStatusResult) => void) => Promise<PluginListenerHandle>
`

Listen for changes to the network status of the device.

The device is only observed while at least one listener is attached.

Only available on Android, iOS and Web.

| Param            | Type                                                 |
| ---------------- | ---------------------------------------------------- |
| **eventName**    | 'networkStatusChange'                                |
| **listenerFunc** | (event: [GetStatusResult](#getstatusresult)) => void |

**Returns:** `Promise<[PluginListenerHandle](#pluginlistenerhandle)>`

**Since:** 0.1.0

---

### removeAllListeners()[¶](#removealllisteners "Permanent link")

`[](#%5F%5Fcodelineno-7-1)removeAllListeners() => Promise<void>
`

Remove all listeners for this plugin.

**Since:** 0.1.0

---

### Interfaces[¶](#interfaces "Permanent link")

#### GetStatusResult[¶](#getstatusresult "Permanent link")

| Prop                  | Type                              | Description                                                                                                                                                                                                                             | Since |
| --------------------- | --------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----- |
| **connected**         | boolean                           | Whether the device is currently connected to a network.                                                                                                                                                                                 | 0.1.0 |
| **connectionType**    | [ConnectionType](#connectiontype) | The type of the currently active network connection.                                                                                                                                                                                    | 0.1.0 |
| **internetReachable** | boolean \| null                   | Whether the active network connection has verified access to the internet. This is null on platforms that cannot validate internet access (iOS and Web), where connectivity does not guarantee reachability. Only available on Android. | 0.1.0 |

#### IsAirplaneModeEnabledResult[¶](#isairplanemodeenabledresult "Permanent link")

| Prop        | Type    | Description                                     | Since |
| ----------- | ------- | ----------------------------------------------- | ----- |
| **enabled** | boolean | Whether the airplane mode is currently enabled. | 0.1.0 |

#### PluginListenerHandle[¶](#pluginlistenerhandle "Permanent link")

| Prop       | Type                |
| ---------- | ------------------- |
| **remove** | () => Promise<void> |

### Enums[¶](#enums "Permanent link")

#### ConnectionType[¶](#connectiontype "Permanent link")

| Members      | Value      | Description                                                  | Since |
| ------------ | ---------- | ------------------------------------------------------------ | ----- |
| **Cellular** | 'CELLULAR' | The device is connected via a cellular network.              | 0.1.0 |
| **Ethernet** | 'ETHERNET' | The device is connected via a wired ethernet network.        | 0.1.0 |
| **None**     | 'NONE'     | The device is not connected to any network.                  | 0.1.0 |
| **Unknown**  | 'UNKNOWN'  | The type of the network connection could not be determined.  | 0.1.0 |
| **Vpn**      | 'VPN'      | The device is connected via a virtual private network (VPN). | 0.1.0 |
| **Wifi**     | 'WIFI'     | The device is connected via a Wi-Fi network.                 | 0.1.0 |

## Network Information[¶](#network-information "Permanent link")

Keep the following platform differences in mind when accessing network information:

* **Android**: The network status is read from the [ConnectivityManager](https://developer.android.com/reference/android/net/ConnectivityManager). The `internetReachable` property reflects the [NET\_CAPABILITY\_VALIDATED](https://developer.android.com/reference/android/net/NetworkCapabilities#NET%5FCAPABILITY%5FVALIDATED) capability, which fixes false positives when a VPN or captive portal is active.
* **iOS**: The network status is read from the [NWPathMonitor](https://developer.apple.com/documentation/network/nwpathmonitor) of the Network framework. The `internetReachable` property is always `null` because iOS cannot distinguish validated internet access from mere connectivity. VPN connections are reported as `UNKNOWN`. The `isAirplaneModeEnabled()` method is not available because there is no public API for it.
* **Web**: The network status is read from [navigator.onLine](https://developer.mozilla.org/en-US/docs/Web/API/Navigator/onLine) and the [Network Information API](https://developer.mozilla.org/en-US/docs/Web/API/Network%5FInformation%5FAPI) (where supported). The `internetReachable` property is always `null`. The `isAirplaneModeEnabled()` method is not available.

## Changelog[¶](#changelog "Permanent link")

See [CHANGELOG.md](https://github.com/capawesome-team/capacitor-plugins/blob/main/packages/network/CHANGELOG.md).

## License[¶](#license "Permanent link")

See [LICENSE](https://github.com/capawesome-team/capacitor-plugins/blob/main/packages/network/LICENSE).

July 7, 2026 

Back to top

```json
{"@context": "https://schema.org", "@graph": [{"@type": "TechArticle", "@id": "https://capawesome.io/docs/sdks/capacitor/network/#article", "headline": "Capacitor Network Plugin for Android, iOS & Web", "name": "Capacitor Network Plugin for Android, iOS & Web", "description": "Capacitor plugin to access network information such as connection status and type, and to listen for network changes on Android, iOS, and the web.", "inLanguage": "en", "url": "https://capawesome.io/docs/sdks/capacitor/network/", "mainEntityOfPage": "https://capawesome.io/docs/sdks/capacitor/network/", "author": {"@type": "Organization", "name": "Capawesome", "url": "https://capawesome.io", "logo": {"@type": "ImageObject", "url": "https://capawesome.io/assets/images/logo.svg"}}, "publisher": {"@type": "Organization", "name": "Capawesome", "url": "https://capawesome.io", "logo": {"@type": "ImageObject", "url": "https://capawesome.io/assets/images/logo.svg"}}, "about": {"@id": "https://capawesome.io/docs/sdks/capacitor/network/#software"}}, {"@type": "SoftwareSourceCode", "@id": "https://capawesome.io/docs/sdks/capacitor/network/#software", "name": "Capacitor Network Plugin for Android, iOS & Web", "description": "Capacitor plugin to access network information such as connection status and type, and to listen for network changes on Android, iOS, and the web.", "url": "https://capawesome.io/docs/sdks/capacitor/network/", "programmingLanguage": "TypeScript", "runtimePlatform": "Capacitor", "codeRepository": "https://github.com/capawesome-team", "author": {"@type": "Organization", "name": "Capawesome", "url": "https://capawesome.io", "logo": {"@type": "ImageObject", "url": "https://capawesome.io/assets/images/logo.svg"}}, "publisher": {"@type": "Organization", "name": "Capawesome", "url": "https://capawesome.io", "logo": {"@type": "ImageObject", "url": "https://capawesome.io/assets/images/logo.svg"}}}]}
```
