Dear Geek,
Can I detect that a screenshot has been taken (like Snapchat does) on my Titanium mobile app for iOS?
—  WATCHING FOR SCREENSHOTS
Dear Watching,
Good news! While there isn’t a built-in way to detect that a screenshot has been taken, you can install this native module and get alerted any time a user takes a screenshot of your app.
Install @titanium/screenshot native mobile for Titanium SDK
run this in the root directory of your project
npm install @titanium/screenshot
Add code to listen for screenshot taken
// require the module
const screenshot_detective = require('@titanium/screenshot');
// add event listener
screenshot_detective.addEventListener('screenshotTaken', e => {
console.debug('you are here → screenshot detected');
alert('Screenshot taken!');
});
Limitations
- This only works with iOS. Android is more of a pain when it comes to screenshot detection.
- This will only detect screenshots taken with the physical buttons on the device (or with the simulator). It will not fire if you take a screenshot directly using the Titanium SDK.
You can find more information about detecting screenshots with Titanium Native mobile apps on the @titanium/screenshot npm page here.
Ask-a-Geek questions are answered by Brenton House, an API and Mobile geek who has been doing dev work for 25+ years.
Follow us on social