Comment by nine_k
12 hours ago
The app doesn't know. It just produces a widget tree, and the OS-provided renderer renders it this way or that way. In particular, it chooses not to render controls marked as "security-sensitive" when the rendering is intended for a screenshot; it could instead put empty boxes in their place, etc. The app has no idea and no control, AFAIK.
Even having never developed on iOS before, I was able to find this in the first google search result for "ios api to detect screenshot": https://developer.apple.com/documentation/uikit/uiapplicatio...
Open the amazon app. Take a screenshot. See a toast message informing you that the amazon app has detected you've taken a screenshot. Fucking used for fucking profiling.
Don't apps like Snapchat notify the other person if you take a screenshot of your messages?
Yes, iOS has userDidTakeScreenshotNotification for that.
https://developer.apple.com/documentation/uikit/uiapplicatio...
Would be nice if the user could disable that.
Yes, Snapchat does this. Apps absolutely have the ability to know when a screenshot is taken.
Snapchat advertises that they detect screenshots. They try. But they're well aware that they can't actually know.
For example, their bug bounty program policy helpfully informs you that "screenshot detection avoidance" is not considered a vulnerability: https://hackerone.com/snapchat . That's because it's always possible.
The apps definitely know. Horsemen example: If you screenshot on Amazon (and Business version) iOS apps, it “helpfully” pops its own share sheet.