/react-native-detector

a screenshot detector for react native

Primary LanguageTypeScriptMIT LicenseMIT

react-native-detector

a simply and easy to use screenshot detector for react native

Installation

yarn

yarn add react-native-detector

npm

npm install react-native-detector

iOS

cd ios && pod install

android

for Android you need to have access for READ_EXTERNAL_STORAGE to detect screenshots by user to do that you just need to add this line in AndroidManifest.xml

    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

and get user permission

import { PermissionsAndroid } from 'react-native';

//...
const requestPermission = async () => {
  await PermissionsAndroid.request(
    PermissionsAndroid.PERMISSIONS.READ_EXTERNAL_STORAGE,
    {
      title: 'Get Read External Storage Access',
      message: 'get read external storage access for detecting screenshots',
      buttonNeutral: 'Ask Me Later',
      buttonNegative: 'Cancel',
      buttonPositive: 'OK',
    }
  );
};

Usage

import {
  addScreenshotListener,
  removeScreenshotListener,
} from 'react-native-detector';

// ...
React.useEffect(() => {
  const userDidScreenshot = () => {
    console.log('User took screenshot');
  };
  const unsubscribe = addScreenshotListener(userDidScreenshot);
  return () => {
    unsubscribe();
  };
}, []);

Roadmap

Status Goal
iOS version of screenshot detector
✅ (Thanks to @mhssn95) Android version of screenshot detector
🚧 Screen recording detecting
🚧 Calls detector

Contributing

See the contributing guide to learn how to contribute to the repository and the development workflow.

License

MIT