Hi everyone, I’m currently working on an OutSystems 11 mobile application and exploring options to prevent screenshots on specific sensitive screens (e.g., displaying confidential data). ✅ What I’ve Tried On Android, I’m using plugins like PreventSS, and they work perfectly. Screenshots are successfully blocked where needed. ❌ The Challenge (iOS) On iOS, this is where I’m stuck — I haven’t found a reliable way to prevent screenshots. As far as I know, iOS has stricter limitations, but I’m hoping there might be a workaround or plugin that helps. 🔍 Questions Has anyone successfully implemented screenshot prevention on iOS in an OutSystems mobile app? I came across AppShield’s "Prevent Screenshot" feature: Does it actually work on iOS, or is it limited like other approaches? Can it be applied selectively to specific screens, or is it only app-wide? Any insights, experiences, or recommendations (plugins, native approaches, or best practices) would be greatly appreciated 🙏 Thanks in advance!
Any time I have an app that prevent me to take a screenshot I just use another phone to make the picture of the screen. It's a false security feature.
Thanks, but that’s not really helpful, feels more like a generic comment than an actual answer to the question.
Whether the feature is bypassable isn’t the point.
Hello Seif,
May I ask why you need this feature? I read a bit about iOS and it seems there are no reliable ways of guarantee preventing screenshot 100% of time. In OutSystems, you probably would have to create a plugin to make code that would make it work, and it will never work on all iOS versions. Not sure if there is anything in Forge that actually works with iOS.
And while Daniel did not answered your question per se, he actually gave you the better answer for your question.
There is no way of preventing a user that is able to SEE the data of copying the data with pen and paper, use another mobile to take a picture, using a camera, memorizing what they are seeing, etc.
So, any "prevent screenshot" feature is, well, useless.
What's your use case that make this feature necessary (and not useless)?
Cheers!
Hi Eduardo, Thank you for your valuable feedback, especially the way you clarified the technical aspects, this is exactly the kind of insight I was looking for. Just to clarify my position: this is not something I’m personally advocating for or trying to promote as a feature. It’s a business requirement that was brought to us, and my goal here is simply to evaluate it from a technical perspective and understand what is feasible and how it behaves across platforms. I really appreciate your contribution in helping move the discussion toward the technical side.
No problem.
The reason I asked about the use case is to understand if this feature will be implemented because the mobile will be used in a way that make it (the feature) "useful".
But I agree with Daniel. This requirement seems to be coming from business people that didn't think about it. Again, I may be wrong, but I can't think of many situations where not allowing to take screenshots would prevent information leaking at all.
This is the type of requirement that if I was asked to implement, I would ask back what is the purpose, as it may be that what they are trying to achieve may be achieved in different ways.
As an example, a project once had a requirement to allow the company to wipe out the data in the mobile remotely. Sensitive data had to be stored and they were worried that the mobile could be stolen. The team had to talk to the business about this, as this is a "false" security, as it would depend on the mobile to be connected to the network, among other very challenging technical aspects that would have impact on the project. The solution adopted was to encrypt all the data on the device.
If my reply is not helping you, than you don't understand what I wrote. Why burn time and money on a useless feature, that can be bypassed so easy. Explain your customer it doesn't make sense, it is a false sense of security.
I’m already fully aware this can be bypassed, this isn’t news to anyone, and it’s not what I was asking about. My question was purely technical, not about debating the usefulness of the feature.
Instead of providing technical input, you shifted into challenging a requirement that isn’t even mine—it’s a business-driven need for a sensitive application. And yes, we’ve already had the “this can be bypassed” conversation internally.
Also, this isn’t unusual—many major platforms implement similar limitations (Instagram one-time media, Netflix, banking apps, etc.).
That other companies implement it doesn't make it a secure option. People can downvote me endlessly, it remains a waste and time of money to implement such a feature.
Hi @Daniël Kuhlmann
I would like to add a few thoughts of my own. I don't think you're 100% correct. It's true that blocking screenshots does not completely prevent the recording or capture of displayed information, but it DOES help to some extent. Of course, it does not eliminate all possible data leakage scenarios, since someone can use another device to take a photo of the screen. But that doesn't mean the feature is useless, it still reduces the risk of accidental data leaks. For example, someone might accidentally take a screenshot (I've done that plenty of times myself), and then that image gets automatically backed up to the cloud, synced across devices, or shared along with other photos without much thought.
No, it's not a perfect solution. It won't stop every possible way of capturing information, buut security is usually about REDUCING risk, not eliminating it entirely.
By that logic, why lock your front door if someone could potentially copy the key? No security measure offers 100% protection, but that doesn't make it pointless. Every layer helps, even if it can be bypassed.
Lukasz, I see your point, and malware is even worse and could make misuse of creating screenshots you don't even know about. Issue is the real hacker can bypass all of that, for example the FLAG_SECURE on Android can be bypassed, there are github repositories, youtube videos floating around with how to do that.
That’s true, but blocking screenshots can still enhance security, so I think it is a good idea to implement it in some kind of applications.
Hello @Seif Eddine Labidi
You may want to look at the PrivacyScreenPlugin (https://github.com/devgeeks/PrivacyScreenPlugin). It supports both Android and iOS and is commonly used to protect sensitive content.
That said, I would recommend testing it on a real iOS device, as iOS has platform-level restrictions around screenshot prevention. In many cases, iOS solutions focus on hiding or masking content rather than completely blocking screenshots.
If anyone has used this plugin in an OutSystems mobile app, I'd be interested to hear about their experience as well.
Thanks
Regards
Gourav Shrivastava
Hi @Gourav Shrivastava ,Yes, thank you — that was actually the approach I ended up going with. Since iOS does not allow completely blocking screenshots at the platform level, I’ve shifted to implementing a “black screen” capture instead of trying to prevent screenshots altogether.My initial idea was inspired by this article: Source , and I’m currently working on integrating it through a plugin. I’ll keep you posted once everything is implemented and properly tested. If you’re interested, I’d be happy to share it with you for testing as well. Thanks again!