Android
Integrieren Sie die Human Token Journey in Ihre Android-App mit Custom Tabs.
Custom Tabs starten die Human Token Journey in einem Browser-Tab innerhalb Ihrer App. Wenn die Journey abgeschlossen ist, leitet der Browser zu Ihrem benutzerdefinierten URL-Schema weiter und Ihre App fängt es ab.
Voraussetzungen
- Android 8 (API 26) oder höher
androidx.browser:browser:1.5.0- Ein eindeutiges URL-Schema für Ihre App (z. B.
myapp)
Schritt 1: Abhängigkeit hinzufügen
In Ihrer build.gradle:
implementation("androidx.browser:browser:1.5.0")
Schritt 2: URL-Schema definieren
Wählen Sie ein eindeutiges Schema (z. B. myapp). Dies wird als callbackUri beim Erstellen des Prozesses verwendet:
callbackUri: myapp://callback
Schritt 3: Activity erstellen
import android.content.Intent
import android.net.Uri
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import androidx.browser.customtabs.CustomTabsIntent
class HumanTokenActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val url = intent.getStringExtra(EXTRA_PROCESS_URL) ?: return finish()
CustomTabsIntent.Builder()
.build()
.launchUrl(this, Uri.parse(url))
}
override fun onNewIntent(intent: Intent) {
super.onNewIntent(intent)
intent.data?.let { uri ->
if (uri.scheme == "myapp") {
// Journey completed — send processId to your backend
val processId = uri.getQueryParameter("id")
handleResult(processId)
}
}
}
private fun handleResult(processId: String?) {
// Fetch the result from your backend via Get Process
finish()
}
companion object {
const val EXTRA_PROCESS_URL = "process_url"
}
}
Schritt 4: AndroidManifest.xml konfigurieren
<uses-feature android:name="android.hardware.camera" android:required="false" />
<uses-permission android:name="android.permission.CAMERA" />
<activity
android:name=".HumanTokenActivity"
android:launchMode="singleTop"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="myapp" android:host="callback" />
</intent-filter>
</activity>
singleTop stellt sicher, dass Android onNewIntent() auf der bestehenden Activity aufruft, anstatt eine neue zu erstellen.
Schritt 5: Journey starten
val intent = Intent(this, HumanTokenActivity::class.java)
.putExtra(HumanTokenActivity.EXTRA_PROCESS_URL, processLink)
startActivity(intent)
Dateiübersicht
| Datei | Zweck |
|---|---|
build.gradle | androidx.browser-Abhängigkeit |
HumanTokenActivity.kt | Custom Tabs Start + Weiterleitungsbehandlung |
AndroidManifest.xml | Intent-Filter für Ihr URL-Schema |