---
description: Capacitor plugin to hide sensitive app content in the app switcher, block screenshots, and detect when a screenshot is taken on Android and iOS.
title: Capacitor Privacy Screen Plugin - Capawesome
image: https://capawesome.io/docs/assets/images/social/sdks/capacitor/privacy-screen.png
---

<!doctype html> 

[Skip to content ](#capacitor-privacy-screen-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/)
* [ Home Indicator ](/docs/sdks/capacitor/home-indicator/)
* [ 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/)
* [ Light Sensor ](/docs/sdks/capacitor/light-sensor/)
* [ 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 ](/docs/sdks/capacitor/network/)
* [ 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/)
* [ Permissions ](/docs/sdks/capacitor/permissions/)
* [ Phone Dialer ](/docs/sdks/capacitor/phone-dialer/)
* [ Photo Editor ](/docs/sdks/capacitor/photo-editor/)
* [ Photo Manipulator ](/docs/sdks/capacitor/photo-manipulator/)
* [ PixLive ](/docs/sdks/capacitor/pixlive/)
* [ PostHog ](/docs/sdks/capacitor/posthog/)
* [ Printer ](/docs/sdks/capacitor/printer/)
* Privacy Screen [ Privacy Screen ](/docs/sdks/capacitor/privacy-screen/)
* [ Configuration ](#configuration)
* [ Usage ](#usage)
* [ API ](#api)
* [ Capabilities ](#capabilities)
* [ FAQ ](#faq)
* [ Related Plugins ](#related-plugins)
* [ Newsletter ](#newsletter)
* [ Changelog ](#changelog)
* [ License ](#license)
* [ Proximity Sensor ](/docs/sdks/capacitor/proximity-sensor/)
* [ 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/)
* [ System WebView ](/docs/sdks/capacitor/system-webview/)
* [ Text Interaction ](/docs/sdks/capacitor/text-interaction/)
* [ 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

* [ Configuration ](#configuration)
* [ Usage ](#usage)
* [ API ](#api)
* [ Capabilities ](#capabilities)
* [ FAQ ](#faq)
* [ Related Plugins ](#related-plugins)
* [ Newsletter ](#newsletter)
* [ Changelog ](#changelog)
* [ License ](#license)

# Capacitor Privacy Screen Plugin[¶](#capacitor-privacy-screen-plugin "Permanent link")

Capacitor plugin to hide sensitive app content in the app switcher, block screenshots, and detect when a screenshot is taken.

[ ![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")

* 🖼️ **App switcher**: Hide sensitive app content in the app switcher.
* 📸 **Screenshot prevention**: Block screenshots and screen recordings.
* 🔔 **Screenshot detection**: Get notified when the user takes a screenshot.
* 🤝 **Compatibility**: Works alongside the [Biometrics](https://capawesome.io/docs/sdks/capacitor/biometrics/) and [Secure Preferences](https://capawesome.io/docs/sdks/capacitor/secure-preferences/) plugins.
* 📦 **CocoaPods & SPM**: Supports CocoaPods and Swift Package Manager for iOS.
* 🔁 **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!

## Use Cases[¶](#use-cases "Permanent link")

The Privacy Screen plugin is typically used in apps that display sensitive information, for example:

* **Banking and finance apps**: Hide account balances and transactions in the app switcher and block screenshots.
* **Password managers**: Prevent credentials from appearing in screenshots or screen recordings.
* **Messaging and health apps**: Protect private conversations and medical data from being captured.
* **Screenshot auditing**: Get notified via the `screenshotTaken` event when the user takes a screenshot, for example to log the event or warn the user.

## 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-privacy-screen` 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-privacy-screen
[](#%5F%5Fcodelineno-2-2)npx cap sync
`

This plugin is only available on **Android** and **iOS**. On Web, all methods reject as unimplemented.

### Android[¶](#android "Permanent link")

#### Permissions[¶](#permissions "Permanent link")

The plugin declares the `android.permission.DETECT_SCREEN_CAPTURE` permission in its `AndroidManifest.xml`. This install-time permission is required to detect screenshots on Android 14 (API level 34) and newer. It is added automatically and requires no further configuration.

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

No configuration required for this plugin.

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

The following examples show how to enable and disable the privacy screen, check whether it is enabled, and detect screenshots.

### Enable the privacy screen[¶](#enable-the-privacy-screen "Permanent link")

Enable the privacy screen to hide the app content in the app switcher. On Android, this also blocks screenshots and screen recordings. On iOS, screenshots are only blocked if the `ios.preventScreenshots` option is enabled:

`[](#%5F%5Fcodelineno-3-1)import { PrivacyScreen } from '@capawesome/capacitor-privacy-screen';
[](#%5F%5Fcodelineno-3-2)
[](#%5F%5Fcodelineno-3-3)const enable = async () => {
[](#%5F%5Fcodelineno-3-4)  await PrivacyScreen.enable({
[](#%5F%5Fcodelineno-3-5)    ios: {
[](#%5F%5Fcodelineno-3-6)      preventScreenshots: true,
[](#%5F%5Fcodelineno-3-7)    },
[](#%5F%5Fcodelineno-3-8)  });
[](#%5F%5Fcodelineno-3-9)};
`

### Disable the privacy screen[¶](#disable-the-privacy-screen "Permanent link")

Disable the privacy screen when it is no longer needed:

`[](#%5F%5Fcodelineno-4-1)import { PrivacyScreen } from '@capawesome/capacitor-privacy-screen';
[](#%5F%5Fcodelineno-4-2)
[](#%5F%5Fcodelineno-4-3)const disable = async () => {
[](#%5F%5Fcodelineno-4-4)  await PrivacyScreen.disable();
[](#%5F%5Fcodelineno-4-5)};
`

### Check whether the privacy screen is enabled[¶](#check-whether-the-privacy-screen-is-enabled "Permanent link")

Check if the privacy screen is currently enabled:

`[](#%5F%5Fcodelineno-5-1)import { PrivacyScreen } from '@capawesome/capacitor-privacy-screen';
[](#%5F%5Fcodelineno-5-2)
[](#%5F%5Fcodelineno-5-3)const isEnabled = async () => {
[](#%5F%5Fcodelineno-5-4)  const { enabled } = await PrivacyScreen.isEnabled();
[](#%5F%5Fcodelineno-5-5)  return enabled;
[](#%5F%5Fcodelineno-5-6)};
`

### Detect screenshots[¶](#detect-screenshots "Permanent link")

Get notified when the user takes a screenshot of the app. On Android, this event is only emitted on Android 14 (API level 34) and newer:

`[](#%5F%5Fcodelineno-6-1)import { PrivacyScreen } from '@capawesome/capacitor-privacy-screen';
[](#%5F%5Fcodelineno-6-2)
[](#%5F%5Fcodelineno-6-3)const addListener = async () => {
[](#%5F%5Fcodelineno-6-4)  await PrivacyScreen.addListener('screenshotTaken', () => {
[](#%5F%5Fcodelineno-6-5)    console.log('The user took a screenshot.');
[](#%5F%5Fcodelineno-6-6)  });
[](#%5F%5Fcodelineno-6-7)};
[](#%5F%5Fcodelineno-6-8)
[](#%5F%5Fcodelineno-6-9)const removeAllListeners = async () => {
[](#%5F%5Fcodelineno-6-10)  await PrivacyScreen.removeAllListeners();
[](#%5F%5Fcodelineno-6-11)};
`

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

* [disable()](#disable)
* [enable(...)](#enable)
* [isEnabled()](#isenabled)
* [addListener('screenshotTaken', ...)](#addlistenerscreenshottaken-)
* [removeAllListeners()](#removealllisteners)
* [Interfaces](#interfaces)

### disable()[¶](#disable "Permanent link")

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

Disable the privacy screen.

Only available on Android and iOS.

**Since:** 0.1.0

---

### enable(...)[¶](#enable "Permanent link")

`[](#%5F%5Fcodelineno-8-1)enable(options?: EnableOptions | undefined) => Promise<void>
`

Enable the privacy screen.

On Android, this sets the `FLAG_SECURE` flag on the window, which hides the app content in the app switcher and blocks screenshots and screen recordings.

On iOS, this installs an overlay that hides the app content in the app switcher. Screenshots are only blocked if the `ios.preventScreenshots`option is enabled.

Only available on Android and iOS.

| Param       | Type                            |
| ----------- | ------------------------------- |
| **options** | [EnableOptions](#enableoptions) |

**Since:** 0.1.0

---

### isEnabled()[¶](#isenabled "Permanent link")

`[](#%5F%5Fcodelineno-9-1)isEnabled() => Promise<IsEnabledResult>
`

Check whether the privacy screen is currently enabled.

Only available on Android and iOS.

**Returns:** `Promise<[IsEnabledResult](#isenabledresult)>`

**Since:** 0.1.0

---

### addListener('screenshotTaken', ...)[¶](#addlistenerscreenshottaken "Permanent link")

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

Listen for when the user takes a screenshot of the app.

The event can only be observed after the screenshot has been taken and therefore cannot be prevented.

On Android, this event is only emitted on Android 14 (API level 34) and newer. On older versions, the listener is never called.

Only available on Android and iOS.

| Param            | Type              |
| ---------------- | ----------------- |
| **eventName**    | 'screenshotTaken' |
| **listenerFunc** | () => void        |

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

**Since:** 0.1.0

---

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

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

Remove all listeners for this plugin.

**Since:** 0.1.0

---

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

#### EnableOptions[¶](#enableoptions "Permanent link")

| Prop    | Type                                  | Description                                                  | Since |
| ------- | ------------------------------------- | ------------------------------------------------------------ | ----- |
| **ios** | [EnableIosOptions](#enableiosoptions) | Options that are only applied on iOS. Only available on iOS. | 0.1.0 |

#### EnableIosOptions[¶](#enableiosoptions "Permanent link")

| Prop                   | Type    | Description                                                                                                                                                                                                                   | Default | Since |
| ---------------------- | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- | ----- |
| **preventScreenshots** | boolean | Whether to block screenshots while the privacy screen is enabled. There is no official iOS API to prevent screenshots. This uses an unofficial technique that may stop working in future iOS versions. Only available on iOS. | false   | 0.1.0 |

#### IsEnabledResult[¶](#isenabledresult "Permanent link")

| Prop        | Type    | Description                                      | Since |
| ----------- | ------- | ------------------------------------------------ | ----- |
| **enabled** | boolean | Whether the privacy screen is currently enabled. | 0.1.0 |

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

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

## Capabilities[¶](#capabilities "Permanent link")

The capabilities of this plugin differ between platforms. The following table gives an honest overview of what is supported:

| Capability                       | Android              | iOS                                    |
| -------------------------------- | -------------------- | -------------------------------------- |
| Hide content in the app switcher | ✅ (via enable())     | ✅ (via enable())                       |
| Block screenshots                | ✅ (via enable())     | ⚠️ (opt-in via ios.preventScreenshots) |
| Detect screenshots               | ✅ (Android 14+ only) | ✅                                      |

**Android**: The `enable()` method sets the `FLAG_SECURE` window flag, which hides the app content in the app switcher and blocks both screenshots and screen recordings with a single flag. Screenshot detection is only available on Android 14 (API level 34) and newer; on older versions the `screenshotTaken` event is never emitted.

**iOS**: The `enable()` method installs an overlay that hides the app content in the app switcher. There is no official API to block screenshots. When `ios.preventScreenshots` is enabled, the plugin uses an unofficial secure text field technique that may stop working in future iOS versions. Screenshot detection observes `UIApplication.userDidTakeScreenshotNotification`, which only fires **after** the screenshot has been taken and therefore cannot be prevented.

## FAQ[¶](#faq "Permanent link")

### How is this plugin different from other similar plugins?[¶](#how-is-this-plugin-different-from-other-similar-plugins "Permanent link")

It combines three protections in one fully typed API — hiding sensitive content in the app switcher, blocking screenshots and screen recordings, and detecting when a screenshot is taken — across both Android and iOS. It's honest about what each platform can actually guarantee, with a clear capability table and opt-in handling for the areas where iOS has no official API, so you always know the real behavior you're getting. The API is actively maintained against the latest Capacitor and OS versions.

### Can this plugin block screenshots on iOS?[¶](#can-this-plugin-block-screenshots-on-ios "Permanent link")

Yes, but only as an opt-in. There is no official iOS API to prevent screenshots, so the plugin uses an unofficial secure text field technique that may stop working in future iOS versions. You can enable it via the `ios.preventScreenshots` option of the `enable(...)` method. On Android, screenshots are blocked reliably via the `FLAG_SECURE` window flag.

### Can I prevent a screenshot instead of just detecting it?[¶](#can-i-prevent-a-screenshot-instead-of-just-detecting-it "Permanent link")

On Android, yes: calling `enable(...)` sets the `FLAG_SECURE` window flag, which blocks both screenshots and screen recordings. On iOS, the `screenshotTaken` event can only be observed after the screenshot has been taken and therefore cannot be prevented; blocking is only possible via the opt-in `ios.preventScreenshots` option.

### Why is the `screenshotTaken` event never emitted on my Android device?[¶](#why-is-the-screenshottaken-event-never-emitted-on-my-android-device "Permanent link")

On Android, screenshot detection is only available on Android 14 (API level 34) and newer. On older Android versions, the listener is never called. On iOS, the event is available without version restrictions.

### Does this plugin work on the Web?[¶](#does-this-plugin-work-on-the-web "Permanent link")

No, this plugin is only available on Android and iOS. On the Web, all methods reject as unimplemented since browsers do not provide APIs to control the app switcher or screenshots.

### Do I need to configure any permissions?[¶](#do-i-need-to-configure-any-permissions "Permanent link")

No, the plugin declares the `android.permission.DETECT_SCREEN_CAPTURE` install-time permission in its own `AndroidManifest.xml`, which is required to detect screenshots on Android 14 and newer. It is added automatically and requires no further configuration. On iOS, no permissions are required.

### Can I use this plugin with Ionic, React, Vue or Angular?[¶](#can-i-use-this-plugin-with-ionic-react-vue-or-angular "Permanent link")

Yes, the plugin is framework-agnostic. It works in any Capacitor app regardless of the web framework, including Ionic with Angular, React, or Vue, as well as plain JavaScript projects.

## Related Plugins[¶](#related-plugins "Permanent link")

* [Biometrics](https://capawesome.io/docs/sdks/capacitor/biometrics/): Request biometric authentication, such as face recognition or fingerprint recognition.
* [Secure Preferences](https://capawesome.io/docs/sdks/capacitor/secure-preferences/): Securely store key/value pairs such as passwords, tokens or other sensitive information.
* [Root Detection](https://capawesome.io/docs/sdks/capacitor/root-detection/): Detect rooted and jailbroken devices.
* [App Integrity](https://capawesome.io/docs/sdks/capacitor/app-integrity/): Verify app and device integrity using the Play Integrity API and App Attest.

## 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/).

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

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

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

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

July 8, 2026 

Back to top

```json
{"@context": "https://schema.org", "@graph": [{"@type": "TechArticle", "@id": "https://capawesome.io/docs/sdks/capacitor/privacy-screen/#article", "headline": "Capacitor Privacy Screen Plugin", "name": "Capacitor Privacy Screen Plugin", "description": "Capacitor plugin to hide sensitive app content in the app switcher, block screenshots, and detect when a screenshot is taken on Android and iOS.", "inLanguage": "en", "url": "https://capawesome.io/docs/sdks/capacitor/privacy-screen/", "mainEntityOfPage": "https://capawesome.io/docs/sdks/capacitor/privacy-screen/", "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/privacy-screen/#software"}}, {"@type": "SoftwareSourceCode", "@id": "https://capawesome.io/docs/sdks/capacitor/privacy-screen/#software", "name": "Capacitor Privacy Screen Plugin", "description": "Capacitor plugin to hide sensitive app content in the app switcher, block screenshots, and detect when a screenshot is taken on Android and iOS.", "url": "https://capawesome.io/docs/sdks/capacitor/privacy-screen/", "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"}}}]}
{"@context": "https://schema.org", "@type": "FAQPage", "mainEntity": [{"@type": "Question", "name": "How is this plugin different from other similar plugins?", "acceptedAnswer": {"@type": "Answer", "text": "It combines three protections in one fully typed API — hiding sensitive content in the app switcher, blocking screenshots and screen recordings, and detecting when a screenshot is taken — across both Android and iOS. It's honest about what each platform can actually guarantee, with a clear capability table and opt-in handling for the areas where iOS has no official API, so you always know the real behavior you're getting. The API is actively maintained against the latest Capacitor and OS versions."}}, {"@type": "Question", "name": "Can this plugin block screenshots on iOS?", "acceptedAnswer": {"@type": "Answer", "text": "Yes, but only as an opt-in. There is no official iOS API to prevent screenshots, so the plugin uses an unofficial secure text field technique that may stop working in future iOS versions. You can enable it via the ios.preventScreenshots option of the enable(...) method. On Android, screenshots are blocked reliably via the FLAG_SECURE window flag."}}, {"@type": "Question", "name": "Can I prevent a screenshot instead of just detecting it?", "acceptedAnswer": {"@type": "Answer", "text": "On Android, yes: calling enable(...) sets the FLAG_SECURE window flag, which blocks both screenshots and screen recordings. On iOS, the screenshotTaken event can only be observed after the screenshot has been taken and therefore cannot be prevented; blocking is only possible via the opt-in ios.preventScreenshots option."}}, {"@type": "Question", "name": "Why is the screenshotTaken event never emitted on my Android device?", "acceptedAnswer": {"@type": "Answer", "text": "On Android, screenshot detection is only available on Android 14 (API level 34) and newer. On older Android versions, the listener is never called. On iOS, the event is available without version restrictions."}}, {"@type": "Question", "name": "Does this plugin work on the Web?", "acceptedAnswer": {"@type": "Answer", "text": "No, this plugin is only available on Android and iOS. On the Web, all methods reject as unimplemented since browsers do not provide APIs to control the app switcher or screenshots."}}, {"@type": "Question", "name": "Do I need to configure any permissions?", "acceptedAnswer": {"@type": "Answer", "text": "No, the plugin declares the android.permission.DETECT_SCREEN_CAPTURE install-time permission in its own AndroidManifest.xml, which is required to detect screenshots on Android 14 and newer. It is added automatically and requires no further configuration. On iOS, no permissions are required."}}, {"@type": "Question", "name": "Can I use this plugin with Ionic, React, Vue or Angular?", "acceptedAnswer": {"@type": "Answer", "text": "Yes, the plugin is framework-agnostic. It works in any Capacitor app regardless of the web framework, including Ionic with Angular, React, or Vue, as well as plain JavaScript projects."}}], "url": "https://capawesome.io/docs/sdks/capacitor/privacy-screen/"}
```
