Skip to content

A React Native package to block screenshots and screen recordings, providing protection for sensitive app content. Supports both Android and iOS platforms.

License

Notifications You must be signed in to change notification settings

batuhanoztrk/rn-screenshot-prevent

Repository files navigation

rn-screenshot-prevent

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

"Buy Me A Coffee"

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

About

A React Native package to block screenshots and screen recordings, providing protection for sensitive app content. Supports both Android and iOS platforms.

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published