Do it yourself
$109 per platform, one-time
The WebViewGold license: a finished Xcode or Android Studio project. Paste your URL, set name and icon, switch on features, build and submit. Free updates forever.
See plans on the main pageNative feature
What each platform really allows, how to react in your web app, and how to let users save the screens they are supposed to keep. Pick your builder.
From $109 one-time per platform, or let our team do it all from $698.
| Capability | iOS | Android |
|---|---|---|
| Stop screenshots and screen recordings | Not possible: iOS has no official API that blocks a screenshot | PREVENT_SCREEN_CAPTURE = true in Config.java prevents screenshots and screen recordings of the app |
| Tell the web app | let preventScreenCapture = true in Config.swift detects screenshots and screen recordings and calls onScreenCaptureAttempt() (despite the name, the docs describe detection) | onScreenCaptureAttempt() is called so you can show your own message |
| Save the current screen to Photos on purpose | takescreenshot:// | takescreenshot:// |
| Scope | One switch for the whole app; no per-page setting is documented | One switch for the whole app; no per-page setting is documented |
About 20 minutes plus a new build of both apps.
iOS: let preventScreenCapture = true in Config.swift. Android: PREVENT_SCREEN_CAPTURE = true in Config.java. This is a native change, so it ships with the next app build, not with a web deploy.
WebViewGold calls a function with exactly this name. Code bundled by Vite, Next.js or similar tools lives in modules, so a function declared inside a component is not global. Assign it explicitly in code that runs on every page: window.onScreenCaptureAttempt = function () { … }.
Explain why ("Lesson slides are protected to respect the creator") instead of logging the user out. On iOS the screenshot has already been taken when the function runs, so the message is a deterrent, not a block.
Exam, document and finance apps may want an audit trail (user, page, time). If you record it, say so in your privacy policy.
Where saving is legitimate (tickets, receipts, certificates), add a Save to Photos button that navigates to takescreenshot://. If you combine it with screenshot blocking on Android, check on a device that the saved image is not blank.
Not completely. iOS has no official API that prevents a screenshot. WebViewGold detects screenshots and screen recordings (preventScreenCapture in Config.swift) and calls onScreenCaptureAttempt in the web app so you can respond. Real blocking is available on Android with PREVENT_SCREEN_CAPTURE in Config.java.
Not by itself. Neither store requires apps to allow screenshots, and detection needs no permission. If protected screens turn black in an Android screen recording, mention it in the review notes so nobody mistakes it for a bug.
The WebViewGold docs describe app-wide switches, not a per-page setting. What you control per page is the reaction: onScreenCaptureAttempt can check the current route and only show a notice on sensitive pages.
Same result, different amount of work on your side. All three come with the approval guarantee and 24/7 human support.
$109 per platform, one-time
The WebViewGold license: a finished Xcode or Android Studio project. Paste your URL, set name and icon, switch on features, build and submit. Free updates forever.
See plans on the main page$349 per license, one-time add-on
No Mac, no Xcode, no Android Studio: configure in the browser, we build both apps in the cloud and hand them to App Store Connect and the Play Console.
How the Cloud Builder works Try the free demo$698 per platform $798
Send us your URL and icon. Our team configures, builds and delivers your app within 72 hours, white-label, with source projects. Both platforms for $1,158.
Full Service details Powered byWinter Sale prices valid until December 31, 2026.
App Store & Google Play approval guarantee – or your money back within 14 days
Rather hand it over? Full Service: we configure, build and deliver within 72 hours, from $698 per platform. Questions? Chat with us 24/7.
Refunds are granted under the conditions listed in our FAQ: a non-content rejection by Apple and/or Google, claimed within 14 days after purchase.