マルチオリジンの信頼できるウェブ アクティビティ

信頼できるウェブ アクティビティは、PWA などのウェブアプリ コンテンツを カスタムタブに基づくプロトコルを使用して Android アプリを開発できます。

ff オリジン ナビゲーション

信頼できるウェブ アクティビティでは、次を使用してオリジンを開く必要があります。 デジタル アセット リンク: コンテンツを全画面で表示するために使用します。

検証済みのオリジンからユーザーが移動すると、カスタムタブの UI が表示されます。[カスタム]ページの URL バーに アプリケーション外部のドメイン内をナビゲートしていることがユーザーに通知され、 検証済みのオリジンにすばやく戻ることができる X ボタンをユーザーに提供する。

しかしウェブアプリでは、複数のオリジンにまたがるエクスペリエンスを作成することも一般的です。 www.example.com をメインにしたショッピング アプリケーションで、購入手続きは フローは checkout.example.com でホストされます。

このような場合、カスタムタブを表示することは望ましくありません。ユーザーが ユーザーがアプリケーションを離れたように感じる可能性があるためです。 購入手続きを放棄します

信頼できるウェブ アクティビティを使用すると、デベロッパーは複数のオリジンを検証でき、ユーザーは それらのオリジン間を移動すると全画面表示になります。メインドメインと同様に、デベロッパーは 制御できるということです。

複数のオリジンの検証を設定する

メインオリジンと同様に、検証はデジタル アセット リンクを介して行われ、対象となる各ドメインが 独自の assetlinks.json ファイルが必要です。

www.example.comcheckout.example.com の例では、次のようになります。

  • https://www.example.com/.well-known/assetlinks.json
  • https://checkout.example.com/.well-known/assetlinks.json

各ドメインは同じ Android アプリに接続されるため、assetlinks.json ファイルは 見えます。

Android アプリのパッケージ名が com.example.twa の場合、どちらも assetlink.json ファイルは次のようになります。

[{
  "relation": ["delegate_permission/common.handle_all_urls"],
  "target": {
  "namespace": "android_app",
  "package_name": "com.example",
   "sha256_cert_fingerprints": ["..."]}
}]

Android アプリに複数のオリジンを追加する

Android アプリでは、asset_statements 宣言を更新して、すべての要素を含める 検証する必要があるオリジン:

<string name="asset_statements">
[{
    \"relation\": [\"delegate_permission/common.handle_all_urls\"],
    \"target\": {
        \"namespace\": \"web\",
        \"site\": \"https://www.example.com\"
    }
}],
[{
    \"relation\": [\"delegate_permission/common.handle_all_urls\"],
    \"target\": {
        \"namespace\": \"web\",
        \"site\": \"https://checkout.example.com\"
    }
}],
</string>

LauncherActivity にオリジンを追加する

デフォルトの LauncherActivity を使用する

android-browser-helper サポート ライブラリに含まれる LauncherActivity を使用すると、Android プロジェクトを設定して、検証する複数のオリジンを追加できます。

まず、res/values/strings.xml ファイルに string-array 要素を追加します。各 URL に追加すると、 検証されるものは item サブ要素内にあります。

...
<string-array name="additional_trusted_origins">
    <item>https://www.google.com</item>
</string-array>
...

次に、既存のアクティビティ要素内に新しい meta-data タグを追加して、 LauncherActivityAndroidManifest.xml 内):

...
<activity android:name="com.google.androidbrowserhelper.trusted.LauncherActivity"
    android:label="@string/app_name">


    <meta-data
        android:name="android.support.customtabs.trusted.ADDITIONAL_TRUSTED_ORIGINS"
        android:resource="@array/additional_trusted_origins" />


    ...
</activity>
...

カスタム LauncherActivity を使用する

カスタムコードを使用して信頼できるウェブ アクティビティを起動する場合、次の方法でオリジンを追加できます。 インテントのビルド時に setAdditionalTrustedOrigins を呼び出して、信頼できるウェブ アクティビティを起動する:

public void launcherWithMultipleOrigins(View view) {
  List<String> origins = Arrays.asList(
      "https://checkout.example.com/"
  );


  TrustedWebActivityIntentBuilder builder = new TrustedWebActivityIntentBuilder(LAUNCH_URI)
      .setAdditionalTrustedOrigins(origins);


  new TwaLauncher(this).launch(builder, null, null);
}

まとめ

ここまでの手順で、信頼できるウェブ アクティビティで複数のオリジンをサポートできるようになりました。 android-browser-helper には、マルチオリジンの信頼できるウェブ アクティビティ用のサンプル アプリケーションがあります。製造元 確認してください。

トラブルシューティング

デジタル アセット リンクの設定には、いくつかの流動的な要素があります。アプリケーションに 上部のカスタムタブ バーが表示されます。設定に問題がある可能性があります。

信頼できるウェブ アクティビティのクイック スタートガイドに、トラブルシューティングのセクションで デジタル アセット リンクの問題をデバッグする。

また、デジタル アセット リンクのデバッグに役立つ Peter のアセットリンク ツールもあります。 デバイスにインストールされたアプリケーションに対して行われます。