使用查询参数向 Trusted Web Activity 传递信息

在应用中使用 Trusted Web Activity 时,开发者可能需要将 Trusted Web Activity 中的信息从 将应用原生部分嵌入到渐进式 Web 应用 (PWA) 中。

一个常见的用例是实现自定义分析细分来衡量安装量 以及从 Trusted Web Activity 中启动的会话。查询参数可以添加到启动网址中 来实现这一点

修改起始网址

如果传递给 PWA 的参数在用户之间保持不变,并且 参数可以直接附加到启动网址。此用法的一个示例是 当开发者想要衡量通过 Trusted Web 创建的导航会话数量时 活动记录。

使用 Bubblewrap

Bubblewrap 是一款创建工具,旨在帮助开发者为 使用可信网络启动现有 PWA 的 Android 应用 活动记录。它包含命令行界面 (CLI)

创建新项目

使用 Bubblewrap CLI 时,项目使用 init 命令初始化,并创建 网络清单中以参数形式提供的默认值:

bubblewrap init --manifest https://material.money/manifest.json

向导将默认使用网络清单中的 start_url,并要求用户确认 值,这样开发者就有机会在用于启动 渐进式 Web 应用。

显示 Bubblewrap CLI 输出

修改现有项目

Bubblewrap 生成项目时,该特定项目的信息会存储在一个文件中 名为 twa-manifest.json 的文件。如需修改现有项目的起始网址,请执行以下操作: 开发者需要修改该文件:

{
  ...
  "startUrl": "/?utm_source=trusted-web-activity",
  ...
}

然后,重新生成项目文件并应用新的开始网址

bubblewrap update

使用 Android Studio

使用 Android Studio 和默认 LauncherActivity 时,startUrl 被定义为元标记 然后,我们可以更改用于启动 Trusted Web Activity 的网址,具体方法是: 修改:

<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>

动态修改起始网址

在其他情况下,开发者可能需要创建会随用户或会话而变化的参数, 实例。在大多数情况下,这涉及从 应用将其传递给渐进式 Web 应用。

第 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 步:修改 AndroidManifest.xml 以使用自定义 LauncherActivity

<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 清理网址。

Trusted Web Activity 协议目前未提供与 Trusted Web Activity 协议交换消息的机制。 调用 Web 部分之后,再访问应用的原生部分。

我们相信,现有或即将推出的 Web 平台 API 可以满足开发者所需的大多数应用场景。如果 您正在寻找新的或即将推出的 Web API,请参阅新功能状态页面