当网站由多个应用程序处理时如何创建 assetlinks.json

How to create assetlinks.json when website is handled by multiple apps

为了 link 我的应用程序需要像下面这样定义 assetlink.json 的网页。

[{
"relation": ["delegate_permission/common.handle_all_urls"],
  "target": {
    "namespace": "android_app",
    "package_name": "package name",
    "sha256_cert_fingerprints":
    [key]
  }
}]

我的网站有很多模块,比如说新闻网站中的例子,它有新闻、汽车评论、汽车评论、horoscope/astrology、烹饪、直播电视等不同的部分。在这种情况下,新闻门户每个模块都有 android 个应用程序,每个模块都有单独的 android 个应用程序,而所有模块都在单个域下。那么我们如何定义我们的 assetlink.json

将网站与多个应用相关联(回答“当网站由多个应用处理时如何创建assetlinks.json”)

https://developer.android.com/training/app-links/verify-site-associations#multi-subdomain

一个网站可以在同一 assetlinks.json 文件中声明与多个应用程序的关联。以下文件列表显示了声明文件的示例,该文件分别声明与两个应用程序的关联,并驻留在 https://www.example.com/.well-known/assetlinks.json:

[{
  "relation": ["delegate_permission/common.handle_all_urls"],
  "target": {
    "namespace": "android_app",
    "package_name": "com.example.puppies.app",
    "sha256_cert_fingerprints":
    ["14:6D:E9:83:C5:73:06:50:D8:EE:B9:95:2F:34:FC:64:16:A0:83:42:E6:1D:BE:A8:8A:04:96:B2:3F:CF:44:E5"]
  }
}, {
  "relation": ["delegate_permission/common.handle_all_urls"],
  "target": {
    "namespace": "android_app",
    "package_name": "com.example.monkeys.app",
    "sha256_cert_fingerprints":
    ["14:6D:E9:83:C5:73:06:50:D8:EE:B9:95:2F:34:FC:64:16:A0:83:42:E6:1D:BE:A8:8A:04:96:B2:3F:CF:44:E5"]
  }
}]

只是为了补充正确答案,如果您希望不同的应用程序处理您网站的不同部分(文件夹),在将您的应用程序 SHA256 密钥添加到您的域后,您应该在它自己创建的应用程序中 intent-filter 在 AndroidManifest 上匹配您希望该应用程序打开的部分。

像这样

<intent-filter android:autoVerify="true">
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />
            <data android:scheme="https" android:host="somedomain.com" android:pathPattern="/section/*" />
        </intent-filter>