rn-screenshot-prevent
⚠️ DEPRECATED ⚠️
This package is no longer maintained. Please use react-native-capture-protection instead, which provides more features and better compatibility with modern React Native versions.
Key advantages of react-native-capture-protection:
- Full support for iOS and Android
- Expo compatibility
- Android 14 support
- Event listeners for capture events
- Provider and Hooks support
- Active maintenance and updates
This fork contains fully working blank screenshot on IOS13+ including screen recording
This fork contains fully working image screenshot cover on IOS13+ including screen recording
App layout is white / or black in dark theme
For now, you might disable RNPreventScreenshot.enableSecureView() in development mode (check DEV variable)
because disableSecureView() is not working yet correctly
Getting started
Install the library using either Yarn:
yarn add rn-screenshot-prevent
or npm:
npm install --save rn-screenshot-prevent
Link
React Native v0.60+
For iOS, use cocoapods
to link the package.
run the following command:
$ npx pod-install
For android, the package will be linked automatically on build.
For React Native version 0.59 or older
React Native <= 0.59
run the following command to link the package:
$ react-native link rn-screenshot-prevent
For iOS, make sure you install the pod file.
cd ios && pod install && cd ..
or you could follow the instructions to manually link the project
Upgrading to React Native 0.60+
New React Native comes with autolinking
feature, which automatically links Native Modules in your project. In order to get it to work, make sure you unlink rn-screenshot-prevent
first:
$ react-native unlink rn-screenshot-prevent
Usage
// sample code
import RNScreenshotPrevent from 'rn-screenshot-prevent';
/* (IOS, Android) for android might be the only step to get secureView
* on IOS enables blurry view when app goes into inactive state
*/
RNScreenshotPrevent.enabled(true/false);
/* (IOS) enableSecureView for IOS13+
* creates a hidden secureTextField which prevents Application UI capture on screenshots
*/
if(!__DEV__) RNScreenshotPrevent.enableSecureView();
/* (IOS) enableSecureView for IOS13+
* creates a hidden secureTextField which prevents Application UI capture on screenshots
* and uses imgUri as the source of the background image (can be both https://, file:///)
*/
if(!__DEV__) RNPreventScreenshot.enableSecureView(imgUri);
/* (IOS) disableSecureView for IOS13+
* remove a hidden secureTextField which prevents Application UI capture on screenshots
*/
if(!__DEV__) RNScreenshotPrevent.disableSecureView();

Contributing
See the contributing guide to learn how to contribute to the repository and the development workflow.
License
MIT
Made with create-react-native-library