Android
Das SDK für Android bettet das Widget in Ihre App ein und meldet den Zustand der Challenge über einen Empfänger.
Voraussetzungen
Die folgenden Voraussetzungen sind erfüllt:
| Voraussetzung | Wert |
|---|---|
| Android | ab Version 4.1 Jelly Bean, API-Ebene 16 |
| Sprache | Kotlin oder Java. Das SDK ist in Kotlin geschrieben. |
| Zugangsdaten | Öffentlicher Sitekey aus der Ansicht Details |
SDK einbinden
Ergänzen Sie die Datei build.gradle:
repositories {
mavenCentral()
}
dependencies {
implementation "eu.eucaptcha.android:eu-captcha-android:1.0.0"
// Or for `build.gradle.kts`
// implementation("eu.eucaptcha.android:eu-captcha-android:1.0.0")
}
Widget erzeugen
Erzeugen Sie das SDK und das Widget in Ihrer Activity:
import eu.eucaptcha.android.sdk.*
const val EU_CAPTCHA_SITEKEY = "EUCAPTCHA_SITE_KEY"
class MainActivity : ComponentActivity() {
private val sdk by lazy {
EuCaptchaSDK(context = this)
}
private val widget by lazy {
sdk.createWidget(sitekey = EU_CAPTCHA_SITEKEY)
}
}
Der optionale Parameter theme nimmt die Werte "light" und "dark" an. Ohne Angabe folgt das Widget dem hellen oder dunklen Modus des Geräts.
Widget anzeigen
Zeigen Sie das Widget in Ihrer Oberfläche an und werten Sie den Zustand aus:
val captchaResponse = remember { mutableStateOf("") }
var buttonEnabled by remember { mutableStateOf(false) }
widget.setOnStateChangeListener { event ->
captchaResponse.value = event.response
when (event.state) {
"completed" -> buttonEnabled = true
"expired" -> buttonEnabled = false
"error" -> buttonEnabled = true
}
}
AndroidView(factory = { _ -> widget.view })
Button(onClick = { widget.reset() }, enabled = buttonEnabled) {
Text("Submit")
}
Die folgenden Zustände meldet der Empfänger:
| Zustand | Bedeutung |
|---|---|
completed |
Die Challenge ist bestanden. Das Feld response enthält das Token. |
expired |
Das Token ist abgelaufen. |
error |
Bei der Prüfung ist ein Fehler aufgetreten. |
destroyed |
Das Widget wurde mit widget.destroy() abgebaut. |
Für einzelne Ereignisse stehen zusätzlich die Empfänger setOnCompleteListener, setOnErrorListener und setOnExpireListener bereit.
Der Aufruf widget.reset() startet eine neue Challenge. Solange das Widget noch nicht geladen ist, bleibt der Aufruf ohne Wirkung.
Der Aufruf widget.destroy() blendet das Widget aus und gibt die Ressourcen frei. Danach meldet das Widget keine Zustände mehr.
Token prüfen
Senden Sie das Token an Ihren Server und prüfen Sie es dort. Siehe Endpunkt /verify.