信頼できるウェブ アクティビティは、PWA などのウェブアプリ コンテンツを カスタムタブに基づくプロトコルを使用して Android アプリを開発できます。
信頼できるウェブ アクティビティでは、次を使用してオリジンを開く必要があります。 デジタル アセット リンク: コンテンツを全画面で表示するために使用します。
検証済みのオリジンからユーザーが移動すると、カスタムタブの UI が表示されます。[カスタム]ページの URL バーに アプリケーション外部のドメイン内をナビゲートしていることがユーザーに通知され、 検証済みのオリジンにすばやく戻ることができる X ボタンをユーザーに提供する。
しかしウェブアプリでは、複数のオリジンにまたがるエクスペリエンスを作成することも一般的です。 www.example.com をメインにしたショッピング アプリケーションで、購入手続きは フローは checkout.example.com でホストされます。
このような場合、カスタムタブを表示することは望ましくありません。ユーザーが ユーザーがアプリケーションを離れたように感じる可能性があるためです。 購入手続きを放棄します
信頼できるウェブ アクティビティを使用すると、デベロッパーは複数のオリジンを検証でき、ユーザーは それらのオリジン間を移動すると全画面表示になります。メインドメインと同様に、デベロッパーは 制御できるということです。
複数のオリジンの検証を設定する
メインオリジンと同様に、検証はデジタル アセット リンクを介して行われ、対象となる各ドメインが 独自の assetlinks.json ファイルが必要です。
各オリジンにアセットリンク ファイルを追加する
www.example.com と checkout.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
タグを追加して、
LauncherActivity
(AndroidManifest.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 のアセットリンク ツールもあります。 デバイスにインストールされたアプリケーションに対して行われます。