Screenshot-Schutz und gezieltes Speichern von Screenshots in deiner ChatGPT & Codex-App
Bezahlte Lektionen, private Chats, Kontostände, Einmal-Gutscheine: Manche Bildschirme sollen nicht im Gruppenchat landen. WebViewGold kann Screenshots und Bildschirmaufnahmen auf Android blockieren und auf iOS erkennen und ruft dann eine JavaScript-Funktion in deiner ChatGPT & Codex-App auf, damit du reagieren kannst. Dasselbe Toolkit funktioniert auch andersherum: takescreenshot:// speichert einen Bildschirm gezielt in den Fotos, etwa für Tickets und Belege.
Ab $109 einmalig pro Plattform, oder unser Team erledigt alles ab $698.
Genehmigungsgarantie – oder Geld zurück innerhalb von 14 Tagen
Kein Programmieren nötig
Einmalzahlung, kostenlose Updates
24/7 Support von echten Menschen
Made in Germany seit 2014 · ISO 27001
9:41
CChatGPT & Codex
Screenshot-SchutzJetzt auf dem Smartphone
App Store · Google Play Freigegeben
Was jede Plattform wirklich bietet
Funktion
iOS
Android
Screenshots und Bildschirmaufnahmen verhindern
Nicht möglich: iOS hat keine offizielle API, die einen Screenshot blockiert
PREVENT_SCREEN_CAPTURE = true in Config.java verhindert Screenshots und Bildschirmaufnahmen der App
Die Web-App informieren
let preventScreenCapture = true in Config.swift erkennt Screenshots und Bildschirmaufnahmen und ruft onScreenCaptureAttempt() auf (trotz des Namens beschreibt die Dokumentation eine Erkennung)
onScreenCaptureAttempt() wird aufgerufen, damit du eine eigene Meldung zeigen kannst
Den aktuellen Bildschirm gezielt in den Fotos speichern
takescreenshot://
takescreenshot://
Geltungsbereich
Ein Schalter für die ganze App; eine Einstellung pro Seite ist nicht dokumentiert
Ein Schalter für die ganze App; eine Einstellung pro Seite ist nicht dokumentiert
Prompt für ChatGPT & Codex
Füge das in ChatGPT & Codex ein, um die Web-App-Seite umzusetzen. Prüfe das Ergebnis, veröffentliche und teste dann in der WebViewGold-App.
Prompt für ChatGPT oder Codex
Prompt für Codex: Implementiere das Handling für Bildschirmaufnahmen von WebViewGold und öffne einen Pull Request. Registriere window.onScreenCaptureAttempt in der Einstiegsdatei der App, damit es global ist; es zeigt auf geschützten Seiten einen kurzen Hinweis und sendet den Pfad an einen Endpunkt /api/capture-events, der den Nutzer aus der Session liest. Formuliere Texte für Nutzer plattformgenau: Auf iOS heißt es, dass Screenshots erkannt werden, auf Android, dass sie deaktiviert sind; erkenne die Plattform an getrennten eigenen User-Agent-Tokens (WebViewGold-iOS und WebViewGold-Android). Füge saveScreenToPhotos() hinzu, das in der App zu takescreenshot:// navigiert, und einen Button „In Fotos speichern“ auf Ticketseiten, in Browsern ausgeblendet. Ergänze die Datenschutzseite um das Protokollieren von Aufnahmeversuchen. Füge Tests hinzu und halte die Regeln in AGENTS.md fest.
WebViewGold hat uns die kürzeste und effizienteste Time-to-Market ermöglicht, die jemals möglich war, verglichen mit allen anderen App-Plattformen, die wir in den letzten 5 Jahren ausprobiert haben. Ich weiß nicht, warum ich euch nicht schon früher entdeckt habe, aber ich bin wirklich, wirklich froh, dass ich es getan habe. Wir nähern uns derzeit fast 6000 App-Downloads im iOS App Store & Google Play Store ohne Probleme!
In deiner Web-App auf einen Aufnahmeversuch reagieren
Rund 20 Minuten plus ein neuer Build beider Apps.
Die Einstellung einschalten
iOS: let preventScreenCapture = true in Config.swift. Android: PREVENT_SCREEN_CAPTURE = true in Config.java. Das ist eine native Änderung, sie kommt also mit dem nächsten App-Build, nicht mit einem Web-Deploy.
onScreenCaptureAttempt global machen
WebViewGold ruft eine Funktion mit genau diesem Namen auf. Code, den Vite, Next.js oder ähnliche Tools bündeln, lebt in Modulen, eine in einer Komponente deklarierte Funktion ist also nicht global. Weise sie ausdrücklich in Code zu, der auf jeder Seite läuft: window.onScreenCaptureAttempt = function () { … }.
Eine ruhige Meldung zeigen
Erkläre den Grund („Die Folien dieser Lektion sind geschützt, aus Respekt vor den Kursautoren“), statt den Nutzer auszuloggen. Auf iOS ist der Screenshot schon gemacht, wenn die Funktion läuft, die Meldung schreckt also ab, blockiert aber nicht.
Nur protokollieren, wenn du es brauchst
Prüfungs-, Dokumenten- und Finanz-Apps wollen vielleicht ein Audit-Protokoll (Nutzer, Seite, Zeit). Wenn du es aufzeichnest, erwähne es in deiner Datenschutzerklärung.
Einen vorgesehenen Weg zum Speichern anbieten
Wo Speichern legitim ist (Tickets, Belege, Zertifikate), füge einen Button „In Fotos speichern“ hinzu, der zu takescreenshot:// navigiert. Kombinierst du das auf Android mit der Screenshot-Sperre, prüf auf einem Gerät, dass das gespeicherte Bild nicht leer ist.
Die JavaScript-Seite
Lade das einmal auf jeder Seite (zum Beispiel in der Einstiegsdatei der App). Der optionale Log-Endpunkt gehört auf die Serverseite deines Stacks: Deine eigene API oder Serverless Functions.
javascript
// Eigener User Agent mit "WebViewGold", festgelegt in Config.swift / Config.java
var IN_APP = navigator.userAgent.indexOf("WebViewGold") !== -1;
// Wird von WebViewGold aufgerufen, wenn es einen Screenshot oder eine Bildschirmaufnahme erkennt (iOS)
// oder einen Aufnahmeversuch bei aktivem PREVENT_SCREEN_CAPTURE (Android)
window.onScreenCaptureAttempt = function () {
showToast("Screenshots sind für bezahlte Lektionen deaktiviert."); // dein eigener UI-Helper
fetch("/api/capture-events", {
method: "POST", keepalive: true,
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ path: location.pathname, at: Date.now() })
});
};
// Gezieltes Speichern, zum Beispiel auf einer Ticketseite
function saveTicketToPhotos() {
if (IN_APP) { window.location.href = "takescreenshot://"; }
else { window.print(); } // Fallback im Browser
}
Grenzen, die du ehrlich benennen solltest
Kein Schutz ist absolut: Jeder kann den Bildschirm mit einem zweiten Smartphone abfotografieren. Nutze ihn, um beiläufiges Teilen zu erschweren, nicht als einzige Absicherung für vertrauliche Daten.
Store-Screenshots: Mit aktiver Sperre blockiert Android auch deine eigenen Screenshots. Erstelle die Bilder für den Play-Store-Eintrag, bevor du sie einschaltest, oder aus einem Build ohne Sperre. Siehe Store-Screenshots und Store-Eintrag.
Nutzer erwarten, dass sie Tickets, Belege und Bestätigungen per Screenshot sichern können. Wer wegen einer sensiblen Seite die ganze App sperrt, frustriert sie, und das zeigt sich in den Store-Bewertungen.
Plane das Erlebnis auf iOS rund um die Erkennung: ein Hinweis, ein optionaler Log-Eintrag oder ein sichtbares Wasserzeichen mit der E-Mail-Adresse des Nutzers auf sensiblen Seiten.
takescreenshot:// speichert in die Fotomediathek. iOS fragt beim ersten Mal nach der Erlaubnis, deshalb muss der Purpose String für Fotos im Xcode-Projekt den Grund nennen („um dein Ticket offline zu speichern“).
Häufig gestellte Fragen
Kann ich Screenshots auf dem iPhone blockieren?
Nicht vollständig. iOS hat keine offizielle API, die einen Screenshot verhindert. WebViewGold erkennt Screenshots und Bildschirmaufnahmen (preventScreenCapture in Config.swift) und ruft onScreenCaptureAttempt in der Web-App auf, damit du reagieren kannst. Echtes Blockieren gibt es auf Android mit PREVENT_SCREEN_CAPTURE in Config.java.
Macht Screenshot-Schutz Probleme beim App-Review im App Store oder bei Google Play?
Nicht von sich aus. Keiner der beiden Stores verlangt, dass Apps Screenshots erlauben, und die Erkennung braucht keine Berechtigung. Werden geschützte Bildschirme in einer Android-Bildschirmaufnahme schwarz, erwähne das in den Review-Notizen, damit es niemand für einen Bug hält.
Kann ich nur einzelne Seiten schützen?
Die WebViewGold-Dokumentation beschreibt App-weite Schalter, keine Einstellung pro Seite. Pro Seite steuerst du die Reaktion: onScreenCaptureAttempt kann die aktuelle Route prüfen und nur auf sensiblen Seiten einen Hinweis zeigen.
Wie speichern Nutzer ein Ticket aus meiner ChatGPT & Codex-App?
Füge einen Button „In Fotos speichern“ hinzu, der in der App zu takescreenshot:// navigiert. WebViewGold speichert den aktuellen Inhalt der WebView in der Fotogalerie, so ist das Ticket am Einlass auch ohne Verbindung verfügbar.
Funktioniert onScreenCaptureAttempt mit React-, Vue- oder Svelte-Code?
Ja, solange die Funktion am window-Objekt hängt. Eine Funktion, die in einer Komponente oder einem ES-Modul deklariert ist, ist nicht global, und WebViewGold findet sie nicht; weise window.onScreenCaptureAttempt in der Einstiegsdatei deines ChatGPT & Codex-Projekts zu.
Drei Wege, deine App in die Stores zu bringen
Gleiches Ergebnis, unterschiedlich viel Arbeit auf deiner Seite. Alle drei kommen mit Genehmigungsgarantie und 24/7 Support von echten Menschen.
Selbst machen
$109 pro Plattform, einmalig
Die WebViewGold-Lizenz: ein fertiges Xcode- oder Android-Studio-Projekt. URL einfügen, Name und Icon setzen, Features einschalten, bauen und einreichen. Kostenlose Updates für immer.
Kein Mac, kein Xcode, kein Android Studio: Du konfigurierst im Browser, wir bauen beide Apps in der Cloud und übergeben sie an App Store Connect und die Play Console.
Schick uns deine URL und dein Icon. Unser Team konfiguriert, baut und liefert deine App innerhalb von 72 Stunden, White-Label, inklusive Quellprojekten. Beide Plattformen für $1,158.
Erstattungen erfolgen zu den in unseren FAQ genannten Bedingungen: eine nicht inhaltsbedingte Ablehnung durch Apple und/oder Google, geltend gemacht innerhalb von 14 Tagen nach dem Kauf.