陳述式清單語法

聲明清單是經過 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`。這個檔案可設定為包含與上述範例相同的內容。

如要設定從網站到 include 檔案的指標,請將 `https://example.com/.well-known/assetlinks.json` 變更為:

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

如要從 Android 應用程式設定指標至 include 檔案,請將 `res/values/strings.xml` 變更為:

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

更多資訊

如要進一步瞭解陳述式清單格式和基本概念,請參閱規格文件