Lewati ke konten utama
Android

Integrasikan Human Token Journey ke dalam aplikasi Android Anda menggunakan Custom Tabs.

Markdown

Custom Tabs meluncurkan Human Token Journey di tab browser dalam aplikasi Anda. Saat perjalanan selesai, browser mengarahkan ulang ke skema URL kustom Anda dan aplikasi Anda menangkapnya.

Prasyarat​

  • Android 8 (API 26) atau lebih baru
  • androidx.browser:browser:1.5.0
  • Skema URL unik untuk aplikasi Anda (misalnya myapp)

Langkah 1: Tambahkan dependensi​

Di build.gradle Anda:

implementation("androidx.browser:browser:1.5.0")

Langkah 2: Tentukan skema URL Anda​

Pilih skema unik (misalnya myapp). Ini digunakan sebagai callbackUri saat membuat proses:

callbackUri: myapp://callback

Langkah 3: Buat activity​

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"
}
}

Langkah 4: Konfigurasi 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 memastikan Android memanggil onNewIntent() pada activity yang sudah ada, bukan membuat yang baru.

Langkah 5: Mulai perjalanan​

val intent = Intent(this, HumanTokenActivity::class.java)
.putExtra(HumanTokenActivity.EXTRA_PROCESS_URL, processLink)
startActivity(intent)

Ringkasan file​

FileTujuan
build.gradleDependensi androidx.browser
HumanTokenActivity.ktPeluncuran Custom Tabs + penanganan redirect
AndroidManifest.xmlIntent filter untuk skema URL Anda