语句列表语法

声明列表是位于熟知位置的 JSON 编码文件或代码段。

声明列表的位置

如需了解此列表应存储在何处,请参阅创建语句列表

语法

声明列表或代码段包含一个 JSON 数组,其中包含一个或多个网站或应用声明(以 JSON 对象的形式表示)。这些语句可以按任意顺序排列。一般语法如下:

[
  {
    "relation": ["relation_string"],
    "target": {target_object}
  } , ...
]
relation
一个包含一个或多个字符串的数组,用于描述声明的且与目标相关的一个或多个关系。请参阅已定义的关系字符串列表。示例delegate_permission/common.handle_all_urls
目标
相应声明所适用的目标资产。可用的目标类型:
relation_extensions(可选)

您可以向声明添加可选的 relation_extensions 字段,以提供有关您要授予的权限和关联的更多信息。此字段应是一个对象,其中每个键都是一个关系字符串,而值是一个包含相应关系扩展的对象。请求这些声明的客户端需要更新,以遵循这些字段。

例如,delegate_permission/common.handle_all_urls 关系的 relation_extensions 可能如下所示:

  {
    "relation": ["delegate_permission/common.handle_all_urls"],
    "target": {
      "namespace": "android_app",
      "package_name": "com.example.app",
      "sha256_cert_fingerprints": ["..."]
    },
    "relation_extensions": {
      "delegate_permission/common.handle_all_urls": {...}
    }
  }
  

当请求中设置了 return_relation_extensions=true 参数时,DAL API 支持在 API 调用中返回 relation_extensions。

声明列表示例

以下是一个包含网站和应用相关声明的网站声明列表示例:http://example.digitalassetlinks.org/.well-known/assetlinks.json

扩容到数十条或更多条声明

在某些情况下,正文可能需要针对不同的目标做出许多不同的陈述,或者可能需要由不同的正文针对同一组目标做出陈述。例如,一个网站可能在许多不同的国家/地区顶级网域中提供,并且所有这些网域都可能希望声明同一移动应用。

对于这些情况,include 语句可能会有所帮助。 借助此机制,您可以设置从许多不同正文到某个中心位置的指针,该中心位置定义了所有正文的语句。

例如,您可能决定将中央位置设为 `https://example.com/includedstatements.json`。此文件可以配置为包含与上述示例中相同的内容。

如需设置从网站到包含文件的指针,请将 `https://example.com/.well-known/assetlinks.json` 更改为:

[{
  "include": "https://example.com/includedstatements.json"
}]

如需设置从 Android 应用到包含文件的指针,请将 `res/values/strings.xml` 更改为:

<resources>
  ...
  <string name="asset_statements">
    [{
      \"include\": \"https://example.com/includedstatements.json\"
    }]
  </string>
</resources>

更多信息

如需详细了解声明列表格式和底层概念,请参阅我们的规范文档