---
title: Android
description: CustomTabsを使用したAndroidでのカード非提示認証キャプチャ体験の管理:依存関係、タブの開き方、マニフェストの設定、コールバックの読み取り。
canonical: https://developer.unico.io/ja/dual-api/developers/regional-solutions/card-not-present-verification/integration/controlling-the-experience/mobile/android
locale: ja
generated_by: markdown-export
---

**link**フィールドはユーザーを誘導するために使用されます。このフィールドは、取引作成成功時のレスポンスで受け取ります。

ここでは、お客様のAndroidアプリケーションでユーザー体験を管理する最適な方法を紹介します。

### ステップ1:連携にCustomTabsを使用する

`app/build.gradle`にCustomTabsを使用するために必要な依存関係を追加します。

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

### ステップ2:CustomTabを開く

```java
import android.net.Uri
import androidx.activity.ComponentActivity
import androidx.browser.customtabs.CustomTabsClient
import androidx.browser.customtabs.CustomTabsIntent

class CustomTabActivity : ComponentActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
       super.onCreate(savedInstanceState)

       openCustomTab(<URL_CBU>)
    }

    fun openCustomTab(url: String) {
        val builder = CustomTabsIntent.Builder()
        val customTabsIntent = builder.build()
        customTabsIntent.launchUrl(this, Uri.parse(url))
    }
}
```

### ステップ3:AndroidManifestの変更

`callback_uri`を受け取りたいActivityの`AndroidManifest.xml`に、必要な権限とインテントを追加します。属性`android:launchMode="singleTop"`と、URIデータを提供する`<data>`タグの両方を含める必要があります。

```java
<uses-feature android:name="android.hardware.camera" android:required="false"/>
<uses-permission android:name="android.permission.CAMERA"/>
// カメラと位置情報の権限が必要です

<activity
    android:name=".CustomTabActivity"
    android:exported="true"
    android:label="@string/app_name"
    android:theme="@style/Theme.Customtabs"
    android:launchMode="singleTop">

    <intent-filter android:label="Custom Tab">
        <action android:name="android.intent.action.VIEW" />

        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />

        <!-- scheme and host はcallback_uriフィールドで取引作成時に提供されるデータです
        callback_uri: "foobar://success?code=1234" -->
        <data android:scheme="foobar" android:host="success"/>
    </intent-filter>

</activity>
```

正しく機能するためには、以下の権限が必要です。

- カメラ
- 位置情報

### ステップ4:リターン情報の取得

提供されたデータでリダイレクト情報を取得するには、Activityの`onNewIntent`メソッドで以下のコードを使用できます。

```java
override fun onNewIntent(intent: Intent) {
    super.onNewIntent(intent)

    val url = intent.data
    val scheme = url.scheme // "foobar"
    val host = url.host // "success"
    val code = url.getQueryParameter("code") // "1234"
}
```

:::tip
Unicoが生成するリンクは、ハイブリッドフレームワークでも使用可能です。そのためには、使用しているフレームワークとネイティブとの間にブリッジを作成し、本ドキュメントで提案している方法に従うか、これらの連携オプションを提供するライブラリを使用することができます。
:::

:::warning
アプリケーションへのWebViewの組み込みはお客様の単独の責任であり、この機能はUnicoのライブラリやSDKの一部として提供されるものではありません。そのため、お客様のアプリケーションにおけるWebViewの実装に関する質問や問題については、技術サポートを提供しておりません。設定に関するガイダンスについては、ご使用の技術(React Native、Flutterなど)の公式ドキュメントを参照することをお勧めします。
:::