1

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

这两个网站也都在strings.xml下面 被引用asset_statements。但是,在启动第一个网站然后从第一个网站重定向到第二个网站时,第二个网站将作为常规自定义 chrome 选项卡启动,并且 URL 栏可见。

是否可以隐藏两个 URL?如果是这样,怎么做?

4

1 回答 1

0

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

  • 每个来源都有一个.well-known/assetlinks.json文件
  • androidasset_statements包含所有起源
  • 启动时告诉受信任的 Web 活动有关其他来源的信息。

看来您已经涵盖了前两点,但没有涵盖最后一点。

使用支持库 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);
}

资源:

于 2020-06-26T08:43:25.077 回答