陳述式清單是採用 JSON 編碼的檔案或程式碼片段,位於知名位置。
陳述式清單的位置
如要瞭解應儲存此清單的位置,請參閱「建立陳述式清單」。
語法
對帳單清單或程式碼片段由
一或多個網站或應用程式陳述式的 JSON 陣列,做為 JSON 物件。這些陳述式可以任意順序。一般語法如下:
[
{
"relation": ["relation_string"],
"target": {target_object}
} , ...
]
- 關係
- 一或多個字串陣列,用來描述要宣告的目標關係。請參閱定義的關係字串清單。範例:
delegate_permission/common.handle_all_urls
- 目標
- 這個陳述式適用的目標資產。可用的目標類型:
-
網站目標
"target": {
"namespace": "web",
"site": "site_root_url"
}
- 命名空間
- 必須為網站輸入
web
。
- 網站
- 為陳述式的目標網站 URI,格式為
http[s]://<hostname>[:<port>]
,其中 <hostname> 必須完全符合規定,而對 HTTP 使用通訊埠 80 或 HTTPS 通訊埠 443 時,必須省略 <port>。網站目標只能是根網域,您無法限制特定子目錄;這個根目錄下的所有目錄都會符合條件。系統不會將子網域視為相符項目:也就是說,如果陳述式檔案代管在 www.example.com 上,則 www.puppies.example.com 不會視為相符項目。如要瞭解網站目標比對的規則和範例,請參閱目標說明文件。範例:http://www.example.com
-
Android 應用程式目標
"target": {
"namespace": "android_app",
"package_name": "fully_qualified_package_name",
"sha256_cert_fingerprints": ["cert_fingerprint"]
}
- 命名空間
- 如果是 Android 應用程式,必須為
android_app
。
- package_name
- 這個陳述式適用的應用程式完整套件名稱。範例:
com.google.android.apps.maps
- sha256_cert_fingerprints
- 這個陳述式適用的應用程式憑證的 大寫 SHA265 指紋。您可以使用
openssl
或 Java keytool
進行計算,如下所示:
openssl x509 -in $CERTFILE -noout -fingerprint -sha256
keytool -printcert -file $CERTFILE | grep SHA256
示例:["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"]
。
如果您使用 Play 應用程式簽署功能
,接著執行 keytool
產生的憑證指紋
或本機的 openssl
通常與
使用者裝置。您可以在 Play 管理中心的開發人員帳戶中,依以下路徑前往 Release > Setup > App Integrity,確認是否已為應用程式使用 Play 應用程式簽署功能;如果是的話,您也會在同一頁面中找到應用程式的正確 Digital Asset Links JSON 程式碼片段。
陳述式清單範例
以下是網站陳述式清單範例,其中包含有關網站和應用程式的陳述式: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>
如要進一步瞭解陳述式清單格式和基礎概念,請參閱規格文件。