Aller au contenu principal
Android

Intégrez le parcours Human Token dans votre application Android avec Custom Tabs.

Markdown

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​

FichierObjectif
build.gradleDépendance androidx.browser
HumanTokenActivity.ktLancement Custom Tabs + gestion de la redirection
AndroidManifest.xmlFiltre d'intent pour votre schéma d'URL