คำสั่งจะโฮสต์อยู่ในรายการคำสั่งที่เข้ารหัส JSON ในตำแหน่งที่รู้จักกันดี ในหลักการ ตามที่กำหนดโดยข้อกำหนดของลิงก์เนื้อหา รายการคำสั่งประกอบด้วยคำสั่งอย่างน้อย 1 รายการ และ ผู้รับมอบอำนาจจะมีรายการคำสั่งได้เพียงรายการเดียว
ไวยากรณ์รายการคำสั่ง
ตำแหน่งรายการใบแจ้งยอด
ระบบจะโฮสต์รายการคำสั่งในตำแหน่งที่รู้จักกันดีซึ่งขึ้นอยู่กับประเภทของผู้รับผิดชอบ (เว็บไซต์หรือแอปที่สร้างคำสั่ง)
รายการข้อความเว็บไซต์
ในเว็บไซต์ รายการข้อความคือไฟล์ข้อความที่อยู่ในที่อยู่ต่อไปนี้
scheme://domain/.well-known/assetlinks.json
โปรดสังเกตจุดในชื่อโฟลเดอร์ .well-known
การตอบกลับจากเซิร์ฟเวอร์นอกเหนือจาก HTTP 200 จะถือว่าเป็นข้อผิดพลาดและจะส่งผลให้รายการคำสั่งว่างเปล่า สำหรับ HTTPS การเชื่อมต่อใดๆ ที่ไม่มีห่วงโซ่ใบรับรองซึ่ง
ตรวจสอบได้ด้วยรายการรูทที่เชื่อถือได้จะทำให้รายการคำสั่งว่างเปล่าด้วย
ตัวอย่าง
ตัวอย่างรายการคำสั่งในเว็บไซต์: http://example.digitalassetlinks.org/.well-known/assetlinks.json
รายการคำสั่งของแอป Android
ในแอป Android รายการข้อความคือข้อมูลโค้ด JSON ที่มีไวยากรณ์เดียวกันกับไฟล์ข้อความของเว็บไซต์ แต่จะฝังอยู่ในไฟล์ strings.xml และอ้างอิงในไฟล์ Manifest ดังที่แสดงถัดไป
ใน 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://user@password:www.google.com/
URL ต่อไปนี้จะไม่ตรงกัน
- http://www.google.com/ (รูปแบบไม่ถูกต้อง)
- https://google.com/ (ชื่อโฮสต์ไม่ตรงกัน)
- https://www.google.com:444/ (พอร์ตไม่ตรงกัน)
เป้าหมายแอป
สําหรับแอป แฮชใบรับรองและชื่อแพ็กเกจของเป้าหมายต้องตรงกับแอปพลิเคชันทุกประการ