Danh sách câu lệnh là một tệp hoặc đoạn mã được mã hoá bằng định dạng JSON ở một vị trí phổ biến.
Vị trí của danh sách câu lệnh
Hãy xem phần Tạo danh sách câu lệnh để tìm hiểu nơi lưu trữ danh sách này.
Cú pháp
Danh sách hoặc đoạn mã câu lệnh bao gồm một mảng JSON gồm một hoặc nhiều câu lệnh trang web hoặc ứng dụng dưới dạng đối tượng JSON. Các câu lệnh này có thể được sắp xếp theo thứ tự bất kỳ. Sau đây là cú pháp chung:
[ { "relation": ["relation_string "], "target": {target_object } } , ... ]
- quan hệ
- Một mảng gồm một hoặc nhiều chuỗi mô tả mối quan hệ đang được khai báo cho mục tiêu. Xem danh sách chuỗi quan hệ được xác định. Ví dụ:
delegate_permission/common.handle_all_urls
- mục tiêu
- Thành phần mục tiêu áp dụng câu lệnh này. Các loại mục tiêu hiện có:
-
Mục tiêu trang web "target": { "namespace": "web", "site": "
site_root_url " }- không gian tên
- Phải là
web
đối với trang web. - trang web
- URI của trang web là mục tiêu của câu lệnh, ở định dạng
http[s]://<hostname>[:<port>]
, trong đó <hostname> đủ điều kiện và phải bỏ qua <port> khi sử dụng cổng 80 cho HTTP hoặc cổng 443 cho HTTPS. Mục tiêu trang web chỉ có thể là miền gốc; bạn không thể giới hạn ở một thư mục con cụ thể; tất cả các thư mục trong thư mục gốc này sẽ khớp. Không nên xem xét miền con để khớp: nghĩa là, nếu tệp câu lệnh được lưu trữ trên www.example.com, thì www.puppies.example.com sẽ không được coi là khớp. Để biết các quy tắc và ví dụ về việc so khớp mục tiêu trang web, hãy xem tài liệu về mục tiêu. Ví dụ:http://www.example.com
-
Đích đến của ứng dụng Android "target": { "namespace": "android_app", "package_name": "
fully_qualified_package_name ", "sha256_cert_fingerprints": ["cert_fingerprint "] }- không gian tên
- Phải là
android_app
đối với ứng dụng Android. - package_name
- Tên gói đủ điều kiện của ứng dụng được áp dụng câu lệnh này. Ví dụ:
com.google.android.apps.maps
- sha256_cert_fingerprints
- Dấu vân tay SHA265 viết hoa của chứng chỉ cho ứng dụng mà
áp dụng cho. Bạn có thể tính toán giá trị này bằng cách sử dụng
openssl
hoặc Javakeytool
như minh hoạ dưới đây: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"]
.Nếu bạn đang sử dụng Tính năng ký ứng dụng của Play cho ứng dụng, thì vân tay số của chứng chỉ do việc chạy
keytool
hoặcopenssl
trên máy tạo ra thường không khớp với vân tay số trên thiết bị của người dùng. Bạn có thể xác minh xem mình có đang sử dụng tính năng Ký ứng dụng bằng Play cho ứng dụng của mình hay không trong tài khoản nhà phát triển trên Play Console, trong phần Release > Setup > App Integrity; nếu có, bạn cũng sẽ thấy đoạn mã JSON chính xác của Đường liên kết đến tài sản kỹ thuật số cho ứng dụng của mình trên cùng một trang.
-
Danh sách câu lệnh mẫu
Dưới đây là ví dụ về danh sách tuyên bố trang web chứa tuyên bố về cả trang web và ứng dụng: http://example.digitalassetlinks.org/.well-known/assetlinks.json
Mở rộng quy mô lên hàng chục câu lệnh trở lên
Trong một số trường hợp, một nguyên tắc có thể muốn đưa ra nhiều câu lệnh khác nhau về các mục tiêu khác nhau hoặc có thể cần đưa ra các câu lệnh từ nhiều nguyên tắc cho cùng một nhóm mục tiêu. Ví dụ: một trang web có thể xuất hiện trên nhiều Miền cấp cao nhất theo quốc gia và tất cả các miền đó đều có thể muốn đưa ra tuyên bố về cùng một ứng dụng di động.
Trong những trường hợp này, câu lệnh bao gồm có thể hữu ích. Khi sử dụng cơ chế này, bạn có thể thiết lập con trỏ từ nhiều nguyên tắc khác nhau đến một vị trí trung tâm, vị trí này xác định các câu lệnh cho tất cả nguyên tắc.
Ví dụ: bạn có thể quyết định vị trí trung tâm là `https://example.com/includedstatements.json`. Bạn có thể định cấu hình tệp này để chứa nội dung giống như trong các ví dụ ở trên.
Để thiết lập con trỏ từ trang web đến tệp include, thay đổi "https://example.com/.well-known/assetlinks.json" thành:
[{ "include": "https://example.com/includedstatements.json" }]
Cách thiết lập con trỏ từ ứng dụng Android cho hàm include hãy thay đổi "res/values/strings.xml" thành:
<resources> ... <string name="asset_statements"> [{ \"include\": \"https://example.com/includedstatements.json\" }] </string> </resources>
Thông tin khác
Bạn có thể xem nội dung giải thích chi tiết hơn về định dạng danh sách câu lệnh và các khái niệm cơ bản trong tài liệu đặc tả của chúng tôi.