使用可信网络活动将多个网站与本机应用程序链接

时间:2020-06-25 13:39:20

标签: android-studio trusted-web-activity

我设法将本机应用程序链接到网站,并在单击按钮时启动它。由于该网站是受信任的,因此URL栏不可见。在启动的网站中,有一个按钮,然后可以将其进一步重定向到另一个网站。我为两者都创建了数字资产链接,并在<websitename>/.well-known/<json-file>中添加了JSON文件。

strings.xml下还引用了两个网站 asset_statements。但是,在启动第一个网站然后从第一个网站重定向到第二个网站时,第二个网站将作为常规的自定义chrome标签启动,并显示URL栏。

是否可以同时隐藏两个URL?如果可以,怎么办?

1 个答案:

答案 0 :(得分:0)

要启用多域,您需要检查三件事

  • 每个来源都有一个.well-known/assetlinks.json文件
  • 机器人asset_statements包含所有起源
  • 启动时告诉可信网络活动有关其他来源的信息。

似乎您涵盖了前两点,但没有最后一点。

使用支持库LauncherActivity:

如果使用该库随附的LauncherActivity,则可以通过更新AndroidManifest提供其他来源:

  1. 将其他来源的列表添加到res/values/strings.xml
<string-array name="additional_trusted_origins">
    <item>https://www.google.com</item>
</string-array>
  1. 更新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

如果使用您自己的LauncherActivity,则可以使用其他来源启动,如下所示:

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);
}

资源: