アプリで信頼できるウェブ アクティビティを使用する場合、デベロッパーはアプリのネイティブ部分からプログレッシブ ウェブアプリ(PWA)に情報を渡す必要があります。
一般的なユースケースは、カスタムのアナリティクス セグメントを実装して、Trusted Web Activity から開始されたインストールとセッションを測定することです。これを実装するために、起動 URL にクエリ パラメータを追加できます。
開始 URL を変更する
PWA に渡されるパラメータが、ユーザー間で同じままで起動する場合は、パラメータを起動 URL に直接追加できます。この使用例は、デベロッパーが信頼できるウェブ アクティビティから作成されたナビゲーション セッションの数を測定する場合です。
Bubblewrap の使用
Bubblewrap は、信頼できるウェブ アクティビティを使用して既存の PWA を起動する Android アプリのプロジェクトを作成するためのツールです。ライブラリとコマンドライン インターフェース(CLI)の両方が含まれています。
新しいプロジェクトを作成する
Bubblewrap CLI を使用する場合、プロジェクトは init
コマンドで初期化され、パラメータとして指定されたウェブ マニフェストからデフォルト値が作成されます。
bubblewrap init --manifest https://material.money/manifest.json
ウィザードはウェブ マニフェストの start_url をデフォルトとして使用し、ユーザーに値の確認を求めます。これにより、デベロッパーはプログレッシブ ウェブアプリの起動に使用する URL にパラメータを追加できます。
既存のプロジェクトを変更する
Bubblewrap がプロジェクトを生成すると、その特定のプロジェクトの情報が、プロジェクト フォルダ内の twa-manifest.json
というファイルに保存されます。既存のプロジェクトの開始 URL を変更するには、デベロッパーがファイルを変更する必要があります。
{
...
"startUrl": "/?utm_source=trusted-web-activity",
...
}
次に、プロジェクト ファイルを再生成して新しい開始 URL を適用する
bubblewrap update
Android Studio の使用
Android Studio とデフォルトの LauncherActivity を使用する場合、startUrl は AndroidManifest.xml 内のメタタグとして定義されます。Trusted Web Activity の起動に使用する URL は、次のように変更することで変更できます。
<activity android:name="com.google.androidbrowserhelper.trusted.LauncherActivity"
android:label="@string/app_name">
...
<meta-data android:name="android.support.customtabs.trusted.DEFAULT_URL"
android:value="https://svgomg.firebaseapp.com/?utm_source=trusted-web-activity" />
...
</activity>
開始 URL の動的な変更
ユーザーやセッションをまたいで変更されるパラメータを作成したい場合などが考えられます。ほとんどの場合、Android 側からアプリの詳細情報を収集してプログレッシブ ウェブアプリに渡します。
ステップ 1: カスタム LauncherActivity を作成する
public class CustomQueryStringLauncherActivity extends LauncherActivity {
private String getDynamicParameterValue() {
return String.valueOf((int)(Math.random() * 1000));
}
@Override
protected Uri getLaunchingUrl() {
// Get the original launch Url.
Uri uri = super.getLaunchingUrl();
// Get the value we want to use for the parameter value
String customParameterValue = getDynamicParameterValue();
// Append the extra parameter to the launch Url
return uri
.buildUpon()
.appendQueryParameter("my_parameter", customParameterValue)
.build();
}
}
ステップ 2: カスタム LauncherActivity を使用するように AndroidManifest.xml
を変更する
<activity android:name="com.myapp.CustomQueryStringLauncherActivity"
android:label="@string/app_name">
...
<meta-data android:name="android.support.customtabs.trusted.DEFAULT_URL"
android:value="https://squoosh.app/?utm_source=trusted-web-activity" />
...
</activity>
おわりに
アプリケーションのネイティブ部分からウェブ部分に情報を渡すには、クエリ パラメータを使用します。パラメータがクエリ文字列に追加されると、そのパラメータはページで実行されているスクリプトからアクセス可能になります。また、ユーザーが別のページに移動するときや、デベロッパーが共有アクションを実装したときに、参照の一部になることもあります。
デベロッパーはこれらの影響を認識し、link rel=noreferrer を使用して軽減するか、Page Location API を使用して URL をクリーンアップする必要があります。
Trusted Web Activity プロトコルには現在、ウェブ パーツが呼び出された後にアプリケーションのネイティブ部分とメッセージを交換するメカニズムは用意されていません。
Google は、既存または今後のウェブ プラットフォーム API によって、デベロッパーが必要とするほとんどのユースケースに対応できると考えています。新規または今後のウェブ API を検討されている場合は、新機能のステータス ページをご覧ください。