rn-screenshot-prevent
v0.0.8
Published
A React Native package to block screenshots and screen recordings, providing protection for sensitive app content. Supports both Android and iOS platforms.
Downloads
54
Readme
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.
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