我已经设法将我的本机应用程序链接到一个网站,并通过单击按钮启动它。由于网站受信任,因此 URL 栏不可见。在启动的网站上有一个按钮,然后进一步重定向到另一个网站。我已经为两者创建了一个数字资产链接,并在<websitename>/.well-known/<json-file>
中添加了 JSON 文件。
这两个网站也被引用了strings.xml
asset_statements
.但是,在启动第一个网站然后从第一个网站重定向到第二个网站时,第二个网站将作为常规的自定义chrome选项卡启动,并显示URL栏。
是否可以隐藏两个 URL?如果是这样,如何?
要启用多域,您需要检查 3 件事
- 每个源都有一个
.well-known/assetlinks.json
文件 - 安卓
asset_statements
包含所有起源 - 在启动时告知受信任的 Web 活动其他来源。
似乎您已经涵盖了前两点,但不是最后一点。
使用支持库启动器活动:
如果使用库附带的 LauncherActivity,您可以通过更新 AndroidManifest 来提供其他源:
- 将其他源的列表添加到
res/values/strings.xml
:
<string-array name="additional_trusted_origins">
<item>https://www.google.com</item>
</string-array>
- 更新
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