Titanium

How can my Titanium iOS app detect that a screenshot has been taken?

Titanium iOS app detect a screenshot

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

  1. This only works with iOS. Android is more of a pain when it comes to screenshot detection.
  2. 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.