要启用多域,您需要检查 3 件事
- 每个来源都有一个
.well-known/assetlinks.json
文件
- android
asset_statements
包含所有起源
- 启动时告诉受信任的 Web 活动有关其他来源的信息。
看来您已经涵盖了前两点,但没有涵盖最后一点。
使用支持库 LauncherActivity:
如果使用库附带的 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
如果使用您自己的 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);
}
资源: