使用受信任的 Web 活动将多个网站与本机应用程序链接



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

这两个网站也被引用了strings.xmlasset_statements.但是,在启动第一个网站然后从第一个网站重定向到第二个网站时,第二个网站将作为常规的自定义chrome选项卡启动,并显示URL栏。

是否可以隐藏两个 URL?如果是这样,如何?

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

  • 每个源都有一个.well-known/assetlinks.json文件
  • 安卓asset_statements包含所有起源
  • 在启动时告知受信任的 Web 活动其他来源。

似乎您已经涵盖了前两点,但不是最后一点。

使用支持库启动器活动:

如果使用库附带的 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,则可以像这样实现使用其他源启动:

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

资源:

  • 文章包含更多详细信息: https://developers.google.com/web/android/trusted-web-activity/multi-origin
  • 多源实现示例:https://github.com/GoogleChrome/android-browser-helper/tree/master/demos/twa-multi-domain

相关内容

  • 没有找到相关文章

最新更新