Zum Inhalt springen
WebViewGold Vibe Coding in den App Store
Deutsch
WebViewGold holen

Cursor + Screenshots

Screenshot-Schutz und gezieltes Speichern von Screenshots in deiner Cursor-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 Cursor-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

Was jede Plattform wirklich bietet

FunktioniOSAndroid
Screenshots und Bildschirmaufnahmen verhindernNicht möglich: iOS hat keine offizielle API, die einen Screenshot blockiertPREVENT_SCREEN_CAPTURE = true in Config.java verhindert Screenshots und Bildschirmaufnahmen der App
Die Web-App informierenlet 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 speicherntakescreenshot://takescreenshot://
GeltungsbereichEin Schalter für die ganze App; eine Einstellung pro Seite ist nicht dokumentiertEin Schalter für die ganze App; eine Einstellung pro Seite ist nicht dokumentiert

Prompt für Cursor

Füge das in Cursor ein, um die Web-App-Seite umzusetzen. Prüfe das Ergebnis, veröffentliche und teste dann in der WebViewGold-App.

Prompt für den Cursor-Agenten
Prompt für den Cursor-Agenten: Integriere das Handling für Bildschirmaufnahmen von WebViewGold. Ergänze lib/native.ts um isWebViewGold() (navigator.userAgent enthält mein eigenes Token), registerScreenCaptureHandler(cb), das window.onScreenCaptureAttempt = cb zuweist, und saveScreenToPhotos(), das zu takescreenshot:// navigiert. Füge eine globale TypeScript-Deklaration für window.onScreenCaptureAttempt hinzu. Ruf registerScreenCaptureHandler einmal beim App-Start mit einem Handler auf, der unseren bestehenden Toast nur auf geschützten Routen zeigt und Pfad und Zeitstempel an einen neuen Endpunkt /api/capture-events sendet, der den Nutzer aus der Session nimmt. Füge auf Ticketseiten einen Button „In Fotos speichern“ mit saveScreenToPhotos() hinzu, außerhalb der App ausgeblendet. Schreib Unit-Tests für den Handler und ergänze .cursor/rules um den Hinweis, dass die Sperre eine native, App-weite Einstellung ist.

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!

Antonio Davila · CodeCanyon

In deiner Web-App auf einen Aufnahmeversuch reagieren

Rund 20 Minuten plus ein neuer Build beider Apps.

  1. 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.

  2. 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 () { … }.

  3. 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.

  4. 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.

  5. 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 eigenen API-Routen oder Dienste.

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 Cursor-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 Cursor-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.

Pakete auf der Hauptseite ansehen

Full Service

$698 pro Plattform $798

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.

Full-Service-Details Powered by WeSetupYourWebViewApp

Winter-Sale-Preise gültig bis 31. Dezember 2026.

Bereit, deine Cursor-App zu veröffentlichen?

App Store & Google Play Genehmigungsgarantie – oder Geld zurück innerhalb von 14 Tagen

Lieber abgeben? Full Service: Wir konfigurieren, bauen und liefern innerhalb von 72 Stunden, ab $698 pro Plattform. Fragen? Chatte mit uns – 24/7.

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.