expo-privacy-image
v1.0.5
Published
Overlays a privacy image on the screen when the app goes to the background.
Maintainers
Readme
expo-privacy-image
A React Native package that overlays a privacy image on the screen whenever the app goes to the background, preventing sensitive content from appearing in the app switcher (iOS) or recent apps (Android).
Built with Expo Modules.
Platform support
| Android | iOS | | ------- | --- | | ✅ | ✅ |
Installation
Bare React Native:
Ensure expo-modules is installed before proceeding, then run the command below.
Expo:
npx expo install expo-privacy-imageSetup
Image format: Only PNG is supported.
Expo managed
Add the plugin to your app.config.ts (or app.json) and point it at your privacy image:
// app.config.ts
export default {
plugins: [
[
"expo-privacy-image",
{
imagePath: "./assets/images/privacy.png",
},
],
],
};Then run prebuild to apply the native changes:
npx expo prebuildThe plugin automatically:
- Android: copies the image to
android/app/src/main/res/drawable/privacy_image.png - iOS: adds the image as
PrivacyImage.imagesetinsideImages.xcassets
Bare React Native (manual setup)
Android
Copy your privacy image to:
android/app/src/main/res/drawable/privacy_image.pngiOS
Create the imageset directory and add your image:
ios/<ProjectName>/Images.xcassets/PrivacyImage.imageset/
privacy_image.png
Contents.jsonContents.json should contain:
{
"images": [
{
"idiom": "universal",
"filename": "privacy_image.png",
"scale": "1x"
}
],
"info": { "version": 1, "author": "xcode" }
}Then run:
npx pod-installUsage
Call usePrivacyImage() once, typically at the root of your app or inside a top-level component. Once called, the module is permanently enabled for the lifetime of the app session.
import { usePrivacyImage } from "expo-privacy-image";
export default function App() {
usePrivacyImage();
return (
// ...
);
}When the app moves to the background, the image you configured is shown as a full-screen overlay. It is removed automatically when the app returns to the foreground.
API
usePrivacyImage(): void
Enables the privacy overlay for the current app session. Safe to call multiple times, subsequent calls are no-ops.
| Parameter | Type | Description | | --------- | ---- | ----------- | | — | — | No parameters |
Requirements
- React Native ≥ 0.71
- expo
- iOS ≥ 15.1
