建立對帳單清單

Asset Links Spec 的定義,陳述式在主體已知位置的 JSON 編碼陳述式中代管。陳述式清單包含一或多個陳述式,每個主體只能有一個陳述式清單。

陳述式清單語法

請參閱陳述式清單語法

對帳單清單位置

聲明清單的主觀位置取決於主體的類型 (發出陳述式的網站或應用程式)。

網站對帳單清單

網站上的對帳單清單是位於下列地址的文字檔案:

scheme://domain/.well-known/assetlinks.json

請記下 .well-known 資料夾名稱中的半形句號。

系統會將 HTTP 200 以外的伺服器回應視為錯誤,因此將顯示空白的陳述式清單。使用 HTTPS 時,如果連線憑證沒有可驗證的根層級清單,只要加以驗證,就會產生空白的陳述式清單。

示例

以下是網站中的範例陳述式清單:http://example.digitalassetlinks.org/.well-known/assetlinks.json

Android 應用程式陳述式清單

在 Android 應用程式中,陳述式清單是 JSON 程式碼片段,其語法與網站陳述式檔案相同,但是會嵌入 string.xml 檔案,並顯示在資訊清單中,如下所示。

在 AndroidManifest.xml 中:

<manifest>
  <application>
    ...
    <meta-data android:name="asset_statements" android:resource="@string/asset_statements" />
    ...
  </application>
</manifest>

在 res/values/strings.xml 中:

<resources>
  ...
  <string name="asset_statements">
    ... statement list ...
  </string>
</resources>

示例

以下是 res/values/strings.xml 程式碼片段範例,這個 Android 應用程式支援與應用程式分享位置資訊 (目前不支援的 Android 功能):

<resources>
    ...
    <string name="asset_statements">
      [{
        \"relation\": [\"delegate_permission/common.share_location\"],
        \"target\": {
          \"namespace\": \"web\",
          \"site\": \"https://example.com\"
        }
      }]
    </string>
</resources>

符合目標

每個陳述式都具有「目標」。當您取用陳述式時,必須將陳述式中的目標與部分實體相符。如果陳述式目標與實體相符,系統就會套用陳述式。下列規則可協助您判斷目標是否與特定實體相符:

網站目標

網站的配置、主機和連接埠必須完全相符。HTTP 和 HTTPS 的預設通訊埠是隱含的 (假設兩者為 80 和 443);如果陳述式目標為 http://www.example.com:80,則系統會將 http://www.example.com 網站視為相符。

示例

基於以下聲明目標

"target": {
  "namespace": "web",
  "site": "https://www.google.com"
}

下列 URI 相符:

  • https://www.google.com/
  • https://www.google.com:443/
  • https://www.google.com/foo
  • https://www.google.com/foo?bar
  • https://www.google.com/foo#bar
  • https://<使用者>@<密碼>:www.google.com/

下列網址不會相符:

  • http://www.google.com/ (配置錯誤)
  • https://google.com/ (主機名稱不相符)
  • https://www.google.com:444/ (通訊埠不相符)

應用程式目標

如果是應用程式,憑證的憑證雜湊和套件名稱必須與應用程式完全相符。