Zum Inhalt
Myra EU CAPTCHA Online-Hilfe Stand · 25.08.2026

Flutter

Für Flutter bettet das Widget das EU CAPTCHA in eine WebView innerhalb der App ein und stellt eine Schnittstelle in Dart bereit.

Voraussetzungen

Die folgenden Voraussetzungen müssen erfüllt sein:

Voraussetzung Wert
Flutter ab Version 3.0
Dart SDK ab Version 3.0
Betriebssystem Android ab API-Ebene 19, iOS ab Version 13
Zugangsdaten Öffentlicher Sitekey aus der Ansicht Details

Abhängigkeiten eintragen

Ergänzen Sie die Datei pubspec.yaml:

dependencies:
  flutter_inappwebview: ^6.0.0
  http: ^1.2.0

Kopieren Sie die Datei lib/eucaptcha.dart und das Verzeichnis assets/ in Ihr Projekt und tragen Sie die Dateien ein:

flutter:
  assets:
    - assets/euc_check.all.js
    - assets/euc_styles.css

Plattformen einrichten

Ergänzen Sie unter Android die Datei android/app/src/main/AndroidManifest.xml:

<uses-permission android:name="android.permission.INTERNET"/>

Unter iOS ist keine weitere Einstellung erforderlich.

Widget einbinden

import 'eucaptcha.dart';

EuCaptcha(
  sitekey: 'EUCAPTCHA_SITE_KEY',
  theme: 'auto',   // 'light', 'dark', or 'auto'
  lang: 'en',      // BCP 47 language code
  onComplete: (response) {
    // response is the token — submit to your server as "eu-captcha-response"
  },
  onExpire: (_) { /* CAPTCHA expired */ },
  onError:  (_) { /* error occurred  */ },
)

Der Wert theme steuert die Darstellung mit light, dark und auto. Der Wert lang erwartet einen Sprachcode nach BCP 47.

Widget zurücksetzen

Verwenden Sie einen GlobalKey<EuCaptchaState>, um reset() aufzurufen:

final _captchaKey = GlobalKey<EuCaptchaState>();

EuCaptcha(key: _captchaKey, sitekey: '...', onComplete: ...)

// later:
_captchaKey.currentState?.reset();

Token prüfen

Senden Sie das Token nach dem Aufruf von onComplete an Ihren Server. Der Server prüft das Token:

POST https://api.eu-captcha.eu/v1/verify
Content-Type: application/json

{
  "sitekey":           "EUCAPTCHA_SITE_KEY",
  "secret":            "EUCAPTCHA_SECRET_KEY",
  "client_ip":         "<client IP>",
  "client_token":      "<token from widget>",
  "client_user_agent": "<user-agent>"
}

Die Antwort lautet { "success": true, "train": false }.

Siehe Endpunkt /verify.