Android
Custom Tabs를 사용하여 Android 앱에 Human Token Journey를 통합하세요.
Custom Tabs는 앱 내부의 브라우저 탭에서 Human Token Journey를 실행합니다. 여정이 완료되면 브라우저가 사용자 지정 URL 스킴으로 리디렉션하고 앱이 이를 가로챕니다.
사전 요구 사항
- Android 8 (API 26) 이상
androidx.browser:browser:1.5.0- 앱의 고유한 URL 스킴 (예:
myapp)
단계 1: 의존성 추가
build.gradle에서:
implementation("androidx.browser:browser:1.5.0")
단계 2: URL 스킴 정의
고유한 스킴을 선택하세요 (예: myapp). 프로세스 생성 시 callbackUri로 사용됩니다:
callbackUri: myapp://callback
단계 3: 액티비티 생성
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"
}
}
단계 4: 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은 Android가 새 액티비티를 생성하는 대신 기존 액티비티에서 onNewIntent()를 호출하도록 보장합니다.