Android
Intégrez le parcours Human Token dans votre application Android avec Custom Tabs.
Custom Tabs lance le parcours Human Token dans un onglet de navigateur au sein de votre application. Lorsque le parcours est terminé, le navigateur redirige vers votre schéma d'URL personnalisé et votre application l'intercepte.
Prérequis
- Android 8 (API 26) ou ultérieur
androidx.browser:browser:1.5.0- Un schéma d'URL unique pour votre application (par ex.
myapp)
Étape 1 : Ajouter la dépendance
Dans votre build.gradle :
implementation("androidx.browser:browser:1.5.0")
Étape 2 : Définir votre schéma d'URL
Choisissez un schéma unique (par ex. myapp). Il est utilisé comme callbackUri lors de la création du processus :
callbackUri: myapp://callback
Étape 3 : Créer l'activité
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"
}
}
Étape 4 : Configurer AndroidManifest.xml
<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 garantit qu'Android appelle onNewIntent() sur l'activité existante au lieu d'en créer une nouvelle.
Étape 5 : Lancer le parcours
val intent = Intent(this, HumanTokenActivity::class.java)
.putExtra(HumanTokenActivity.EXTRA_PROCESS_URL, processLink)
startActivity(intent)
Résumé des fichiers
| Fichier | Objectif |
|---|---|
build.gradle | Dépendance androidx.browser |
HumanTokenActivity.kt | Lancement Custom Tabs + gestion de la redirection |
AndroidManifest.xml | Filtre d'intent pour votre schéma d'URL |